zef*_*ciu 21 debugging ajax google-chrome
我有一个使用谷歌浏览器崩溃的ajax请求的Web应用程序(它适用于所有其他测试它的Web浏览器).调试后我发现错误是由response.responseText未定义引起的.xhr对象如下所示:
argument: undefined
isAbort: false
isTimeout: undefined
status: 0
statusText: "communication failure"
tId: 3
Run Code Online (Sandbox Code Playgroud)
在"网络"选项卡的调试器中,我得到"(失败)",但是所有的标题都存在,我甚至可以将响应主体(这是一个有效的JSON)复制到剪贴板中.
我的问题是 - 如何调试此问题?在哪里可以找到其他信息,导致此请求失败的原因是什么?
Kor*_*rri 13
我终于找到了我的问题的解决方案:AdBlocks,当它阻止ajax请求时,它只是说"通信失败".
小智 4
我要仔细检查的第一件事是从响应返回的数据是否是有效的 JSON。只需将其传递给 JSON 验证器,例如在线 JSONLint: http: //jsonlint.com/
我假设您正在使用 jQuery 之类的东西来发出 AJAX 请求。如果是这样,请确保您使用的是该库的开发版本。现在您正在使用脚本的开发版本(未压缩),找到您正在使用的特定函数(例如 $.ajax),然后在 Chrome 检查器中,在 AJAX 响应首先出现的代码中插入一个断点已处理(例如https://github.com/jquery/jquery/blob/master/src/ajax.js#L579)。然后继续单步执行代码,检查各种返回值以准确查看出了什么问题。
如果您不使用 jQuery 之类的东西来进行 AJAX 调用,那么我建议使用框架来避免可能出现的跨浏览器兼容性问题,就像您现在可能遇到的那样。
| 归档时间: |
|
| 查看次数: |
7383 次 |
| 最近记录: |