利用nginx设置跨域cookie访问的方法
时间: 2023-08-05 20:10:03 浏览: 142
利用nginx解决cookie跨域访问的方法
5星 · 资源好评率100%
要设置跨域cookie访问,可以通过配置nginx反向代理服务器来实现。具体方法如下:
1. 在nginx的配置文件中添加以下代码:
```
location / {
add_header 'Access-Control-Allow-Origin' 'http://yourdomain.com';
add_header 'Access-Control-Allow-Credentials' 'true';
proxy_pass http://backend;
}
```
其中,`http://yourdomain.com`是允许跨域访问的域名,`http://backend`是后端服务的地址。
2. 在后端服务的响应头中添加以下代码:
```
Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Credentials: true
```
这样,nginx会在代理请求时添加`Access-Control-Allow-Origin`和`Access-Control-Allow-Credentials`头信息,告诉浏览器允许跨域访问并发送cookie信息。
3. 在前端客户端发送请求时,需要添加`withCredentials`属性:
```
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://backend/api/data', true);
xhr.withCredentials = true;
xhr.send();
```
这样,浏览器就会发送cookie信息到后端服务,并且后端服务也会将`Access-Control-Allow-Credentials`头信息设置为true,以允许接收cookie信息。
注意:当nginx和后端服务部署在同一个域名下时,也需要进行跨域访问的配置,因为nginx默认会将所有请求都代理到后端服务上,导致cookie无法发送。
阅读全文