【问题标题】:Django / JS: Ajax response is not getting messageDjango / JS:Ajax 响应没有收到消息
【发布时间】:2013-07-07 20:03:24
【问题描述】:

我进行了 ajax 调用。它是通过 content_script.js 由 chrome 扩展制成的。完成后,这应该会提醒返回的消息。但是,警报显示响应为空白。

content_script.js

 function got_response(){
     alert(xmlHttp.responseText);
 }

var xmlHttp=new XMLHttpRequest();
xmlHttp.open("POST", domain, true);
xmlHttp.onreadystatechange = got_response;
xmlHttp.send();

view.py:

return HttpResponse("login_error")

我收到一条警报消息,但它不包括我的消息“login_error”。我已经设置了断点,它肯定会从那里返回。似乎这有时有效,有时无效。就像它进入的状态一样?

编辑:这似乎发生在 request.user 是匿名的(也是一个错误,因为我已登录)

【问题讨论】:

  • onreadystatechange 上的返回类型是 xmlhttp.status, xmlhttp.responseText 。你能把got_response的签名改成got_response(status, responseText)alert(responseText)吗? This post 应该有帮助
  • 提示“未定义”
  • 你能提醒(状态)吗?我感觉 CSRF 中间件正在阻止您尝试 POST,而您没有进行任何错误处理。
  • xmlHttp.readyState = 4,但“网络”选项卡中的状态已取消

标签: javascript ajax django google-chrome-extension


【解决方案1】:

答案似乎是在清单文件中添加对我自己网站的权限。

"permissions": [
    "activeTab",  "http://mysite.com/"
  ],

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2012-06-03
    相关资源
    最近更新 更多