Nginx解决后端接口跨域问题
- 浏览器为了访问安全,要求同一站点所发起的请求,必须都来自于同一域名,被称之为浏览器的
同源约束
,违背这一约束就产生了跨域问题
。 - 前后端分离项目,优先使用Nginx将前后端项目进行
同域部署
。 - 不能同域部署的势必会跨域,此时则需要用Nginx给
后端
项目做反向代理,需额外配置:
location / {
# 1.针对复杂请求,的前导OPTIONS请求,采取一律放行政策,Nginx拦截后直接返回200,不打到后端接口,避免后端认证等问题(因为OPTIONS请求不支持自定义头)
if ($request_method = 'OPTIONS') {
return 200;
}
# 2.文件上传大小限制
client_max_body_size 3g;
# 3.给所有请求添加响应头,主要是允许跨域
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'origin,Authorization,Cache-Control,Content-Type';
# 4.后端反向代理
proxy_pass http://192.168.50.87:8090;
}
学习使我充实,分享给我快乐!