晴明的博客园 GitHub      CodePen      CodeWars     

[http] cors 跨域

#

#

服务器端的响应中,如果没有返回Access-Control-Allow-Credentials: true的响应头,那么浏览器将不会把响应结果传递给发出请求的脚本程序,以保证信息的安全。
给一个带有withCredentials的请求发送响应的时候,服务器端必须指定允许请求的域名,不能使用'*'.如果响应头是这样的:Access-Control-Allow-Origin: * ,则响应会失败。

 

header("Access-Control-Allow-Origin: xxx.com"); //允许的来源


//OPTIONS通过后,保存的时间,如果不超过这个时间,是不会再次发起OPTIONS请求的。
header("Access-Control-Max-Age: 86400");


//另外如果是OPTIONS头的话,需要返回200(通过验证)
header("Access-Control-Allow-Headers: Content-Type");


//允许的请求方式
header("Access-Control-Allow-Methods: OPTIONS, GET, PUT, POST, DELETE");

 

目前让Access-Control-Allow-Origin设置multiple cross-domains
除了设置为 *  和用正则匹配,似乎没有更好的方式。

目前使用nginx反向代理可以避免设置这些header的琐碎问题。

posted @ 2016-07-05 18:35  晴明桑  阅读(117)  评论(0编辑  收藏  举报