Nginx解决后端接口跨域问题

  1. 浏览器为了访问安全,要求同一站点所发起的请求,必须都来自于同一域名,被称之为浏览器的同源约束,违背这一约束就产生了跨域问题
  2. 前后端分离项目,优先使用Nginx将前后端项目进行同域部署
  3. 不能同域部署的势必会跨域,此时则需要用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;
}
posted @ 2020-06-11 11:54  JaxYoun  阅读(2164)  评论(0编辑  收藏  举报