如何使用HTML5在Web浏览器中允许来自其他域的受限资源

跨域资源共享(CORS)是一种允许来自Web浏览器中另一个域的受限资源的机制

假设,如果您在html5演示部分中单击HTML5-视频播放器。它将询问相机许可。如果用户允许该权限,则仅会打开摄像头,否则不会为网络应用程序打开摄像头

在这里,Chrome,Firefox,Opera和Safari都使用XMLHttprequest2对象,而Internet Explorer使用类似的XDomainRequest对象。

function createCORSRequest(method, url) {
   var xhr = new XMLHttpRequest();
   if ("withCredentials" in xhr) {
      // Check if the XMLHttpRequest object has a "withCredentials" property.
      // "withCredentials" only exists on XMLHTTPRequest2 objects.
      xhr.open(method, url, true);
   }
   else if (typeof XDomainRequest != "undefined") {
      //否则,检查XDomainRequest。
      //XDomainRequest仅存在于IE中,并且是IE发出CORS请求的方式。
      xhr = new XDomainRequest();
      xhr.open(method, url);
   }
   else {
     //否则,浏览器不支持CORS。
      xhr = null;
   }
   return xhr;
}
var xhr = createCORSRequest('GET', url);
if (!xhr) {
   throw new Error('CORS not supported');
}