我是靠谱客的博主 英勇鼠标,最近开发中收集的这篇文章主要介绍允许同站跨域Nginx配置方案方案一:方案二(允许所有.csdn.net(:[0-9]+)?结尾origin携带cookie跨域)推荐使用方案三,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于目前前后端分离的趋势和微前端解决方案,并且很多web服务部署在Nginx服务器上,那么因为前后端分离导致的跨域问题需要迫切得到解决。因为是否允许跨域的因素有协议、域名、端口,只要有一个不一致就算跨域。大部分需求要求一个一级域名下所有子域名都被允许跨域,一个一个枚举配置十分繁琐,且要发版,为了规避这些问题,解决方案如下:

方案一:

map $http_origin $corsHost {
        default *; # 写上自己的默认值
        "~https://csdn.net" https://csdn.net;
}
server {
    location / {
        add_header 'Access-Control-Allow-Origin' $corsHost;
        ...
    }
}

方案二(允许所有.csdn.net(:[0-9]+)?结尾origin携带cookie跨域)推荐使用

map $http_origin $corsHost {
    default "";
    "~.csdn.net(:[0-9]+)?$" "$http_origin";
}
 
server {
    location / {
        add_header 'Access-Control-Allow-Origin' $corsHost;
        add_header 'Access-Control-Allow-Credentials' 'true';
        # 下面两个属性可以酌情增减
        add_header 'Access-Control-Allow-Headers' '*';
        add_header 'Access-Control-Allow-Methods' '*';
    }
}

方案三

location / {
    if ($http_origin ~* .csdn.net(:[0-9]+)?$) {
         add_header 'Access-Control-Allow-Origin' "$http_origin";
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Headers' 'User-Agent,Keep-Alive,Content-Type';
    }
}

最后

以上就是英勇鼠标为你收集整理的允许同站跨域Nginx配置方案方案一:方案二(允许所有.csdn.net(:[0-9]+)?结尾origin携带cookie跨域)推荐使用方案三的全部内容,希望文章能够帮你解决允许同站跨域Nginx配置方案方案一:方案二(允许所有.csdn.net(:[0-9]+)?结尾origin携带cookie跨域)推荐使用方案三所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部