javascript - 检测浏览器对跨域 XMLHttpRequests 的支持?

标签 javascript xmlhttprequest cross-domain

我正在研究一些利用 Firefox 3.5 执行跨域 XMLHttpRequest 的能力的 Javascript……但如果它们不受支持,我想优雅地失败。

除了实际发出跨域请求之外,是否有任何方法可以检测浏览器是否支持它们?

最佳答案

为了将来引用,完整的 CORS 特征检测应该如下所示:

//Detect browser support for CORS
if ('withCredentials' in new XMLHttpRequest()) {
    /* supports cross-domain requests */
    document.write("CORS supported (XHR)");
}
else if(typeof XDomainRequest !== "undefined"){
  //Use IE-specific "CORS" code with XDR
  document.write("CORS supported (XDR)");
}else{
  //Time to retreat with a fallback or polyfill
  document.write("No CORS Support!");
}

您可以 try this test live using JSBin并在 IE、Firefox、Chrome、Safari 和 Opera 中查看正确的响应。

在非浏览器环境中有一些边缘情况确实支持跨域 XHR 但不支持 XHR2/CORS。此测试不考虑这些情况。

关于javascript - 检测浏览器对跨域 XMLHttpRequests 的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1641507/

相关文章:

javascript - 当用户按 Enter 键时,它将下拉菜单内容和文本字段数据更改为默认值

ssl - 如何在 react native XMLHttpRequest API 或 Fetch Api 中禁用 ssl 检查?

jquery - 使用 Phantomjs/Jquery 发送跨域 GET 请求服务器端

javascript - React Prop 规范化或计算属性

javascript - AngularJS 用 Canvas 写在图像上

javascript - 正则表达式替换任何不在单词之前的内容

javascript - 如何从需要基本身份验证的 URL 获取 src

javascript - 在 Javascript 中发出顺序 POST 请求的最佳方法

php - 使用 'iframe' 在 php 中创建一个用于上传图片的 http 代理

html - 跨 http/https 清除 html5 sessionStorage