检测跨域XMLHttpRequests的服务器/站点支持?

时间:2012-02-24 16:03:33

标签: javascript exception xmlhttprequest cross-domain cors

我有兴趣了解哪些最小的跨浏览器Javascript代码(jQuery也很好)可能用于验证我希望发送跨域AJAX请求的网站是否支持CORS

我知道jQuery有一种方法来检查浏览器是否支持它。但我真的希望能够检查远程站点是否也支持它。

我认为我只需要检查HTTP标头,但当然XHR会在尝试对不特别支持它的网站进行跨域请求时抛出异常。

但有没有办法检查XMLHttpRequest抛出的异常是由于网站不支持CORS而不是其他错误? (它不必支持XDomainRequest。)

在任何情况下,我都不确定使用AJAX获取HTTP HEAD的最佳最小/最快跨浏览器方式,我认为这是轻量级方式而不是获取页面等。

使用案例:一旦我知道浏览器和AJAX提供商是否支持CORS,我就可以选择是发送功能更强大的JSON / CORS请求还是回退到JSONP {1}}在必要时提出请求。

1 个答案:

答案 0 :(得分:1)

specification而言,这是不可能的。

  

如果出现网络错误:如果出现DNS错误,则进行TLS协商   失败或其他类型的网络错误应用网络错误   脚步。不要求任何类型的最终用户互动...

     

否则:执行资源共享检查。如果它返回失败,请应用网络错误步骤...

没有特殊方法可以识别不允许使用CORS的情况,因为在任何情况下都会应用network error steps