【问题标题】:Ajax call for a Django(Piston) API always fail对 Django(Piston) API 的 Ajax 调用总是失败
【发布时间】:2011-06-13 19:07:59
【问题描述】:

我正在使用对我用 Piston/Django 创建的 API 的 ajax 调用。我通过在浏览器中直接输入 API URL 来测试它们是否正确。

但是,ajax 请求总是会触发错误回调函数,但会返回一个未定义的错误。我认为问题出在我的ajax调用中。有人可以帮我吗?非常感谢。

这是我的 javascript:

    $("#delete_req").click(function(event){
    //PUTs data, saving new permissions
    alert("delete_req");
    event.preventDefault();
    $.ajax({
      url:"{{SITE_URL}}requests/api/manage/disc={{vialogue.discussion_id}}&puser={{req.userid}}&acc=0/",
      type:'GET',
      success: function(data, textStatus, jqXHR){
        location.reload( true );
      },
      error: function(jqXHR, textStatus, errorThrown){
        alert(errorThrown);
        alert(textStatus);
        alert("There was an error deleting this request. Please try again or contact us for help.")
     }
    });

    });

【问题讨论】:

  • 请不要只是在标题中添加“已解决”,而是在答案中提供解决方案并接受它。
  • 我也有同样的问题,但我在您的帖子中找不到解决方案。能解释一下“我发现我在使用它后定义了‘req’”是什么意思吗?

标签: ajax django jquery get django-piston


【解决方案1】:

在 django 1.2.5 和 1.3 中,Ajax 表单提交需要一个 csrf 令牌。

【讨论】:

  • 正确,但与问题完全无关,因为这显然是一个 GET 请求。
  • 谢谢。我发现我在使用它之后定义了“req”。
【解决方案2】:

您确定这是正确的网址吗?它有一个非常奇怪的结构。我希望看起来像 GET 参数的元素实际上是 GET 参数:

{{SITE_URL}}requests/api/manage/?disc={{vialogue.discussion_id}}&puser={{req.userid}}&acc=0

如果你做出这样的改变,它会起作用吗?

【讨论】:

  • 谢谢。我发现我在使用它之后定义了“req”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 2012-06-17
  • 2011-05-31
  • 2012-01-15
  • 1970-01-01
相关资源
最近更新 更多