Nginx配置代理解决本地html进行ajax请求接口跨域问题
在Nginx配置文件中,您可以添加一个location块来代理到您的本地HTML页面,并设置适当的Access-Control-Allow-Origin
头来允许跨域请求。以下是一个配置示例:
server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/your/html/files;
index index.html;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
# 如果是POST请求,还需要处理预检请求
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
}
location /api/ {
proxy_pass http://your-backend-server/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
}
}
在这个配置中,/api/
下的请求会被代理到后端服务器。HTML页面托管在/path/to/your/html/files
目录下,并且所有的请求都被允许跨域。
请根据实际情况调整your-domain.com
、/path/to/your/html/files
和http://your-backend-server/api/
。
评论已关闭