检测服务器/站点对跨域XMLHttpRequest的支持

Detect server/site support for cross-domain XMLHttpRequests?

本文关键字:XMLHttpRequest 支持 服务器 站点 检测      更新时间:2023-09-26

我很想看看什么最小的跨浏览器Javascript代码(jQuery也可以)可以用来验证我希望发送跨域AJAX请求的网站是否支持CORS

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

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

但是,有没有办法检查XMLHttpRequest引发的异常是由于站点不支持CORS而不是其他问题?(它不必支持XDomainRequest。)

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

用例:一旦我知道浏览器和AJAX提供商是否支持CORS,我就可以选择是发送更具特色的JSON/CORS请求,还是在必要时返回到JSONP请求。

就规范而言,这是不可能的。

如果存在网络错误:在DNS错误的情况下,TLS协商故障或其他类型的网络错误,应用网络错误步骤。不要请求任何类型的最终用户交互。。。

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

没有特殊的方法来识别不允许CORS的情况,因为在任何情况下都会应用网络错误步骤。