http://www.ruanyifeng.com/blog/2012/09/xmlhttprequest_level_2.html
跨域资源共享CORS:
http://www.ruanyifeng.com/blog/2016/04/cors.html
CORS分为两类:简单请求和非简单请求
1、简单请求:同属满足下列两种情况:
请求过程:
浏览器发现跨域请求AJAX是简单请求,自动在头信息中添加Origin字段,服务器根据这个值确定是否可以访问资源。
成功:服务器返回的响应多出几个头
Access-Control-Allow-Origin: http://api.bob.com Access-Control-Allow-Credentials: true Access-Control-Expose-Headers: FooBarContent-Type: text/html; charset=utf-8失败:返回一个正常的HTTP回应。浏览器发现,这个回应的头信息没有包含Access-Control-Allow-Origin字段(详见下文),就知道出错了,从而抛出一个错误,被XMLHttpRequest的onerror回调函数捕获。注意,这种错误无法通过状态码识别,因为HTTP回应的状态码有可能是200。如果要发送cookie,需要服务器同意(Access-Control-Allow-Credential:true),AJAX请求中打开withcredential属性(
var xhr = new XMLHttpRequest(); xhr.withCredentials = true;)1) 请求方法是以下三种方法之一:
HEADGETPOST(2)HTTP的头信息不超出以下几种字段:
AcceptAccept-LanguageContent-LanguageLast-Event-IDContent-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plai安装了chrome 的 Access-control-allowe-origin插件,可以访问
如果不装插件怎么办?是个问题
