跳到主要内容

Nginx 跨域方案

一、认识


通过 Nginx 配置 location + proxy_pass 实现反向代理, 将跨域请求转发到同源接口,从而避免浏览器的同源策略限制。

二、语法


重写路径

server {
listen 80;
server_name your-domain.com;

location /api {
# 设置代理目标地址
proxy_pass http://api.example.com;

# 设置允许的跨域请求头
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";

# 处理预检请求(OPTIONS 请求)
if ($request_method = OPTIONS) {
return 200;
}
}
}

直接路径