ajax跨域问题(四)解决'跨域'-----被调用方解决-nginx

a→b b这个ngnix负责加响应头.png

为了试验先模拟一下

改hosts 在
C:\Windows\System32\drivers\etc
加一行 表示被调用方的域名 这样b.com 就会到127.0.0.1
127.0.0.1 b.com

新建一个vhost(意思是虚拟主机)文件夹放我的配置文件↓


新建配置文件夹.png

里面新建一个b.conf

server {
    listen       80;
    server_name  b.com;

    location / {
        proxy_pass http://localhost:8080/;
    }
}

意思是:对b.com:80的不论什么请求 全部都会(location /)转到http://localhost:8080

在nginx.conf里面最后加一句include vhost/*.conf; 让vhost里面这个格式的文件都为配置文件

然后nginx -t测一下 配置有没有打错

测一下配置.png

start ngnix.exe启动

image.png

image.png

2个现在一样

前端代码url 改下 让其通过ngnix再去tomcat服务端 如:

$.getJSON("http://b.com/test/get1").then(function(jsonObj) {
        result = jsonObj;
});

在刚才新建的配置文件里面b.conf 里面让nigix给响应加头 加的头就和之前服务端代码里的一样 除了预检命令直接返回成功200

server {
    listen       80;
    server_name  b.com;

    location / {
        proxy_pass http://localhost:8080/ ;
        
        add_header Access-Control-Allow-Credentials true;
        add_header Access-Control-Allow-Methods *;
        add_header Access-Control-Max-Age 3600;
        add_header Access-Control-Allow-Origin $http_origin;
        add_header Access-Control-Allow-Headers 
        $http_access_control_request_headers;
        
        if ($request_method = OPTIONS){
            return 200;
        }
    }
}

重启nginx让配置生效ngnix.exe -s reload

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容