AJAX捕获«失败»和«取消»之间的差异发送请求到另一个域

时间:2013-04-05 02:36:54

标签: javascript ajax google-chrome

我正在向另一个域上的服务器发出ajax请求,但我不需要它的响应,只是为了知道它得到了我的请求。 当一切正常时,在Chrome开发者工具(标题状态)中,它会显示“已取消”并且控制台写入“XMLHttpRequest无法加载”,但服务器会收到我的请求。 当服务器关闭时,标题状态不是数字,而只是“失败”。 试图抓住JS上的这个关键差异我在两种情况下都获得了XHR状态。

1 个答案:

答案 0 :(得分:0)

我正在向另一个域上的服务器发出ajax请求

由于same-origin policy,您无法向其他域发出ajax请求。您想要查看JSONP,它基本上为远程URL写出<script>标记。

What is JSONP all about?

使用JSONP调用检测成功/错误是棘手的,它根本不像典型的ajax调用那样工作。理想情况下,您希望远程服务器在您的页面上调用回调函数,如上面的链接所述。

如果您不控制其他域,则可以尝试使用超时来检测错误。 Here is a post讨论了jQuery超时参数,尽管你也可以使用原始javascript实现自己的超时。