标签:
前几天碰到CORS问题,只要在“Access-Control-Allow-Origin”响应头中添加对应域名即可。
今天做一个上传文件的demo,利用XMLHttpRequest向服务器发送post请求时,浏览器总是提示不能跨域访问,查看发送的请求发现本该是POST的请求变成了OPTIONS
在网上查了下资料,终于解决了。
跨站 HTTP 请求分为两种,一种是简单请求,一种是复杂请求
所谓的简单,是指:
application/x-www-form-urlencoded
, multipart/form-data 或 text/plain
中的一种。简单请求会直接发送请求。
不同于上面讨论的简单请求,复杂请求必须先发送一个 OPTIONS 请求给目的站点,来查明这个跨站请求对于目的站点是不是安全可接受的。这样做,是因为跨站请求可能会对目的站点的数据造成破坏。 复杂请求具备以下条件:
application/x-www-form-urlencoded, multipart/form-data 或者
text/plain
以外的数据类型。比如说,用 POST 发送数据类型为 application/xml 或者 text/xml 的 XML 数据的请求。
OPTIONS 是 HTTP/1.1 里的方法,用来获取更多服务器端的信息,是一个不应该对服务器数据造成影响的方法
参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
标签:
原文地址:http://www.cnblogs.com/Realwate/p/5560798.html