解决跨域问题

发布时间 2023-07-27 18:01:22作者: fnblogs

一、部署在IIS上跨域

1.打开IIS管理,找到网站

 

2.找到HTTP响应头标

 3.打开HTTP响应头标

 添加:Access-Control-Allow-Origin:*

二、Nginx跨域

location /api {
                proxy_pass http://b.com/;
                # 设置是否允许 cookie 传输
                add_header Access-Control-Allow-Credentials true;
                # 允许请求地址跨域 * 做为通配符
                add_header Access-Control-Allow-Origin *;
                # 允许跨域的请求方法
                add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
                # 请求头
                add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

                 if ($request_method = 'OPTIONS') {
                         return 204;
                 }
        }
View Code

当A服务中请求路径以 /api 打头时,nginx做了代理,全部转发到 api 服务上.

上面配置项 add_header Access-Control-Allow-Origin *;
说明转发的请求全部添加了请求头 Access-Control-Allow-Origin *
也就是说浏览器这边对于跨域请求不会拦截.