nginx隐藏跨域时,a.com域名下设置的cookie为啥能被传递给被调用方,也就是服务端?
浏览向某个域发起请求时,只能带上该域下的cookie。我的理解是,隐藏跨域时,浏览器没有跨域,只是Nginx跨域了,但是Nginx又没有跨域限制。浏览器一直都是向同一个域发起请求,所以cookie应该设置在该域下,然后cookie应该是被Nginx转发到后台了吧
看a.bom.conf文件配置内容,
listen 80;
server_name a.com;
#调用方
location / {
proxy_pass http://localhost:8081;
}
当我们在浏览器中输入a.com时就,浏览器监听到是同域,已经将请求转发到 调用方的http服务器nginx了,调用方的http服务器,即调用方的nginx监听到80端口和a.com域名后,根据 location / {
proxy_pass http://localhost:8081;
} 已经直接访问到被调用方的http服务器了。所以这时候,我们定义的document.cookie的时候,实际就是在在被调用方的http服务器上被定义了,根据就不存在你说的 cookie为啥能被传递给被调用方了,因为我们本身就是在被调用方的http服务器上定义的。 不知道解释这么具体,你明白了没?