jQuery Ajax - 状态码0?

tar*_*eld 136 ajax http-status-codes

出于某种原因,我的开发的应用程序刚刚停止了AJAXing并返回0的状态代码.这发生在你身上吗?有人知道为什么会这样吗?

mnk*_*mnk 107

另一个案例:

0如果您已经发送了AJAX调用并且在获得AJAX响应之前触发了浏览器刷新,则可以获取状态代码.AJAX通话将被取消,您将获得此状态.

  • 感谢您指出这一点,它让我意识到(以及浏览器刷新)表单提交可以取消ajax调用. (9认同)
  • 只需执行`<form onsubmit="return false;">` (2认同)
  • @Heitor 的建议对我有用——我的表单的“提交”按钮正在刷新页面,同时当单击“提交”按钮时我有 javascript 尝试运行 ajax 调用。结果是ajax调用被取消 (2认同)

Lan*_*don 96

根据我的经验,您会在以下情况下看到状态为0:

  • 进行跨站点脚本编写(访问被拒绝)
  • 请求无法访问的URL(拼写错误,DNS问题等)
  • 否则请求被拦截(检查您的广告拦截器)
  • 如上所述,如果请求被中断(浏览器导航离开页面)

  • 当连接被拒绝时我得到它。例如,当使用 Visual Studio 调试我的网站时,如果我已停止调试会话,则任何尝试连接的请求都将收到 net::ERR_CONNECTION_REFUSED 并且状态代码将为零。这是有道理的,因为如果您无法连接到应该提供状态代码的服务器,您就无法获得状态代码。 (2认同)
  • @nasimjahednia 查找 CORS...您尝试访问的服务器需要允许来自您的域的跨站点脚本编写。 (2认同)
  • 我很困惑。有没有办法获取返回的HTTP错误码?这里有很多不同的情况(415、404 等?) (2认同)

Raf*_*afi 8

使用时这里的问题相同<button onclick="">submit</button>.然后通过使用解决<input type="button" onclick="">

  • 答对了!!任何人都可以解释为什么会这样吗? (2认同)
  • 默认情况下,HTML按钮类型为"提交",因此单击它将尝试提交表单数据.因此它将执行点击操作,然后尝试提交.如果您使用类型"按钮",它不再是默认类型,只会执行onclick. (2认同)

小智 7

状态码0表示无法访问请求的URL.通过将http:// something/something更改为https://某些东西/某些东西适合我.当状态代码为0时,IE会抛出错误,说"权限被拒绝",其他浏览器不会.


nux*_*xxx 7

需要注意的是,即使在由具有某个前缀为www的某个域的cookie定义的会话中,ajax调用也会失败.当你然后调用你的PHP脚本,例如没有www.在url中的前缀,调用将失败,反之亦然.


mic*_*ael 5

因为当你谷歌 ajax status 0 时就会出现这种情况,我想留下一些提示,但它浪费了我几个小时的时间...我正在使用 ajax 调用 PHP 服务,该服务恰好是 Phil 的 Codeigniter REST_Controller (不确定这是否有)与它有关或无关)并不断获得状态 0、就绪状态 0,这让我发疯。我正在调试它并注意到当我回显并返回而不是退出消息时我会获得成功。最后我关闭调试并尝试,它成功了。似乎 PHP 的 xDebug 调试器以某种方式修改了响应。如果您使用 PHP 调试器,请尝试将其关闭,看看是否有帮助。