检测服务器/站点对跨域XMLHttpRequest的支持
Detect server/site support for cross-domain XMLHttpRequests?
我很想看看什么最小的跨浏览器Javascript代码(jQuery也可以)可以用来验证我希望发送跨域AJAX请求的网站是否支持CORS
。
我知道jQuery有一个方法来检查浏览器是否支持它。但我真的很想能够检查远程站点也支持它。
我以为我只需要检查HTTP标头,但当然XHR会在尝试向不特别支持它的网站进行跨域请求时抛出异常。
但是,有没有办法检查XMLHttpRequest
引发的异常是由于站点不支持CORS
而不是其他问题?(它不必支持XDomainRequest。)
在任何情况下,我都不确定使用AJAX获取HTTP HEAD
的最佳最小/最快跨浏览器方式,我认为这是轻量级的方式,而不是获取页面等。
用例:一旦我知道浏览器和AJAX提供商是否支持CORS
,我就可以选择是发送更具特色的JSON
/CORS
请求,还是在必要时返回到JSONP
请求。
就规范而言,这是不可能的。
如果存在网络错误:在DNS错误的情况下,TLS协商故障或其他类型的网络错误,应用网络错误步骤。不要请求任何类型的最终用户交互。。。
否则:执行资源共享检查。如果返回失败,请应用网络错误步骤。。。
没有特殊的方法来识别不允许CORS的情况,因为在任何情况下都会应用网络错误步骤。
相关文章:
- XMLHttpRequest未返回值-状态202
- XMLHttpRequest在移动设备上的chrome上不起作用
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 检查xmlhttprequest问题的消息
- 主线程上的同步XMLHttpRequest已弃用
- 如何定期发出xmlhttprequest
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 上传带有XMLHttprequest的文件-多部分/表单数据中缺少边界
- 对象#<XMLHttpRequest>没有方法'完成'
- 在XMLHttpRequest之后重新初始化jQuery
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- Javascript XMLHttpRequest——只有第一个POST请求有效
- XMLHttpRequest - difference between Chrome & Firefox
- IE上的新XMLHttpRequest()出现JS Ajax未指定错误
- 非常简单的XMLHttpRequest不起作用
- 如何使用XMLHttpRequest下载文件
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- XMLHttpRequest.open()AJAX中的参数url
- XMLHTTPRequest脚本中没有internet连接和超时
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作