标签:标准 null method nload http == 客户 一点 浏览器
CORS(Cross-Origin Resource Sharing, 跨源资源共享)是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功,还是应该失败。
使用CORS时服务器需设置Access-Control-Allow-Origin头部为‘*’或者某一个或几个域。
其中设为*的话表示所有的域都可以对此服务器进行访问,设置为某一个域的情况下便只有该域的请求可以访问。
带凭据的请求:
默认情况下,跨域请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。
在发送请求时,通过将withCredentials属性设置为true,可以指定某个请求可以发送凭据。
如果服务器的Response Headers中返回Access-Control-Allow-Credentials:true,则表示服务端接受带凭据的请求
CORS的跨浏览器实现方式:
function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); xhr.onload = function() { if(xhr.readyState == 4) { try { if((xhr.status >= 200 && xhr.status < 300) || xhr == 304) { console.log(xhr.response); } else { console.log(‘Request was unsuccessful: ‘ + xhr.status); } } catch(ex) { new Error(ex); } } }; if(‘withCredentials‘ in xhr) { xhr.open(method,url, true); } else if(typeof XDomainRequest != ‘undefined‘) { xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; }
之后会补上服务端返回字段的意义和CORS简单请求和非简单请求的方式。
晚安
标签:标准 null method nload http == 客户 一点 浏览器
原文地址:http://www.cnblogs.com/WeiRuifeng/p/6683603.html