首页 > 代码库 > 关于CORS的一点研究
关于CORS的一点研究
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简单请求和非简单请求的方式。
晚安
关于CORS的一点研究
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。