基于目前前后端分离的趋势和微前端解决方案,并且很多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 / {set $cors "";if ($http_origin ~* \.csdn\.net(:[0-9]+)?$) {set $cors "true";}if ($cors = "true") {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配置方案相关推荐

  1. Node.JS跨域请求配置方案

    今天在用node开发的过程中,再次遇到同源策略的问题: 在客户端调用服务端获取数据时,Chrome 浏览器中报错如下: Access to XMLHttpRequest at 'http://loca ...

  2. Amazon CloudFront CDN + s3 源站跨域配置

    Amazon CloudFront CDN + s3 源站跨域配置 问题描述 使用 Amazon CloudFront CDN + s3 源站托管前端静态页面,前端跨域请求时报错: ...blocke ...

  3. Nginx 指定多个域名跨域请求配置

    nginx指定多个域名跨域请求配置 什么是跨域 假设我们页面或者应用已在 http://www.test1.com 上了,而我们打算从 http://www.test2.com 请求提取数据.一般情况 ...

  4. vue脚手架解决跨域问题-------配置反向代理

    vue脚手架解决跨域问题-------配置反向代理 参考文章: (1)vue脚手架解决跨域问题-------配置反向代理 (2)https://www.cnblogs.com/zbx-boke/p/9 ...

  5. django允许跨域请求配置

    2019独角兽企业重金招聘Python工程师标准>>> django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改s ...

  6. proxy代理的使用(解决跨域,配置多个代理)

    proxy代理的使用(解决跨域,配置多个代理) 一.什么是代理 字面意思就是类似中间商,开启代理,原理就是在本地创建一个虚拟服务器,发送请求数据,同时接受请求的数据, 利用服务器与服务器间,交互,不会 ...

  7. Nginx跨域解决配置示例

    简介 在日常学习和工作开发中,需要请求两个不同配置的请求经常存在,本文介绍如果还使用Nginx配置解决其跨域问题 相关理论 首先需要了解什么是跨域,下面的两个文章说的很好,请仔细阅读后,然后自己去动手 ...

  8. 服务端解决跨域问题的方案(二)

    一分钟说明 本文主要基于Nginx的配置来解决服务端跨域问题. 涉及知识点: - Nginx的配置 Nginx的跨域配置 location /project {proxy_pass http://10 ...

  9. h5跨域访问图片_网页保存为图片及高清截图的优化 | canvas跨域图片配置

    本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H ...

最新文章

  1. 【web安全】Xss Exploits and Defense翻译2
  2. Android开发(五)——计时器
  3. 哇、、、、C++ 实现单向链表
  4. 安全预警:独立发布的Oracle严重 CVE-2018-3110 公告
  5. SpringData JPA整理
  6. Java基础:JDBC
  7. ET代理_切换ip软件网络功能。
  8. Gradle教程--基础篇
  9. DVD驱动器打开拒绝访问
  10. 思迈特软件Smartbi:传统BI被“革命”,AI是BI技术未来的发展趋势
  11. 省市县数十万数据集PM2.5面板数据(1998-2020年)
  12. 51单片机:HCSR04超声波测距模块及1602显示—C51程序(超详细)
  13. Fiddler的下载与基本使用方法
  14. 约瑟夫环问题-以python为舟
  15. 就业指导——自我介绍与个人简历
  16. photoshopcs5 win7安装报错的解决
  17. deepin安装openJdk
  18. 游戏虚拟盘两台服务器,网维大师游戏虚拟盘如何设置
  19. 小米笔记本电脑的触控板突然用不了是怎么了
  20. Linux error函数 ——Linux编程

热门文章

  1. mysql的count报错_Mysql报错注入原理分析(count()、rand()、group by)
  2. JavaScipt30(第八个案例)(主要知识点:canvas)
  3. 云通讯短信验证码实例
  4. Maven下载Sql Server 2008的驱动包
  5. 写lua时需要注意的地方
  6. stringstream实例
  7. python sort()、sorted()
  8. java字符编码方式总结
  9. 微信分享朋友圈固定缩略图 php,微信转发或分享朋友圈带缩略图、标题和描述的实现方法...
  10. python interactive window_如果PySide应用程序是从IPython interactive cons运行的,上下文菜单就会消失...