The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. 配合前端写Vue项目时,浏览器遇到这种错误,按道理来说http response 的 header 中 Access-Control-Allow-Origin参数 为* 时,可以满足一切域名情况。 看样子 看了半天也不行,修改nginx的配置 Access-Control-Allow-Origin 改为 http://xxx.xxx.com时候,可以了。最后查找跨域文档才发现 跨域请求发送cookie的时候,需要判断是否包含了请求源的origin,不然不发送cookie,然后,OPTIONS请求发送成功后,并没有新的请求发出。 解决方法是: nginx配置修改一下 add_header Access-Control-Allow-Origin *; 改成 add_header Access-Control-Allow-Origin "$http_origin"; 这样满足任何情况
Http request header坑记录
在开发公共API时,在请求头中(http request header)加入key secret来认证用户。
类似阿里云AccessKey AccessSecret。
header的key为MERCHANT_KEY MERCHANT_SECRET,PHP后端接收不到这些key的header。
查阅nginx资料发现,nginx默认设置会把含有下划线的key给忽略掉。
修改这些设置有两个方法:
1、修改nginx设置,underscores_in_headers 设置为 on
2、使用减号代替下划线,推荐这个方法