JQuery调用未命中$.pos上的服务器

2024-10-03 13:16:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Django向服务器发出一个简单的POST请求。我可以使用另一个api客户机来进行post调用,但当使用jquery时,它从不返回任何内容,也不会显示来自回调函数的警报。下面是我的jquery和django代码。我已经替换了api调用,但我知道它是正确的。在

$(document).ready(function(){
  $("#signInSubmit").click(function(){
    alert("Posting email: "+$("#email").val()+" guests: "+$("#guests").val());
    $.post("apicall",
    {
      'email':$("#email").val(),
      'guests':$("#guests").val(),
      'event':"1"
    },
    function(data,status) {
               alert("Data: " + data + "\nStatus: " + status);
    });
  });
});

这是django的观点受到冲击:

^{2}$

Tags: django服务器apidata客户机emailstatusfunction
2条回答

结果发现它被包装在HTML主体内的一个表单中,我没有注意到。去掉表格包装后,它工作得很好。在

我想可能有几件事:

  1. 在jQuery调用中指定内容类型,确保它显示“application/json”(http://api.jquery.com/jquery.ajax/)因为序列化时假设它是JSON,但它默认为“application/x-www-form-urlencoded”。

  2. 您的POST url在其url的末尾需要一个/,而您发布到的端点没有/,这使得Django发出一个指向/url的重定向。您可以通过设置APPEND_SLASH设置来禁用它(https://docs.djangoproject.com/en/1.4/ref/settings/#附加-slash),但实际上最好总是在结尾用'/'来调用所有端点,所以我建议不要用$.post(“apicall”,…)来发布,而是试试$.post(“apicall/”,…),看看这是否有帮助。

否则,你能把你试过的错误贴出来吗?从Chrome中的Django控制台和Javascript控制台?在

相关问题 更多 >