允许同站跨域Nginx配置方案
基于目前前后端分离的趋势和微前端解决方案,并且很多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配置方案相关推荐
- Node.JS跨域请求配置方案
今天在用node开发的过程中,再次遇到同源策略的问题: 在客户端调用服务端获取数据时,Chrome 浏览器中报错如下: Access to XMLHttpRequest at 'http://loca ...
- Amazon CloudFront CDN + s3 源站跨域配置
Amazon CloudFront CDN + s3 源站跨域配置 问题描述 使用 Amazon CloudFront CDN + s3 源站托管前端静态页面,前端跨域请求时报错: ...blocke ...
- Nginx 指定多个域名跨域请求配置
nginx指定多个域名跨域请求配置 什么是跨域 假设我们页面或者应用已在 http://www.test1.com 上了,而我们打算从 http://www.test2.com 请求提取数据.一般情况 ...
- vue脚手架解决跨域问题-------配置反向代理
vue脚手架解决跨域问题-------配置反向代理 参考文章: (1)vue脚手架解决跨域问题-------配置反向代理 (2)https://www.cnblogs.com/zbx-boke/p/9 ...
- django允许跨域请求配置
2019独角兽企业重金招聘Python工程师标准>>> django允许跨域请求配置 下载corsheader pip install django-cors-headers 修改s ...
- proxy代理的使用(解决跨域,配置多个代理)
proxy代理的使用(解决跨域,配置多个代理) 一.什么是代理 字面意思就是类似中间商,开启代理,原理就是在本地创建一个虚拟服务器,发送请求数据,同时接受请求的数据, 利用服务器与服务器间,交互,不会 ...
- Nginx跨域解决配置示例
简介 在日常学习和工作开发中,需要请求两个不同配置的请求经常存在,本文介绍如果还使用Nginx配置解决其跨域问题 相关理论 首先需要了解什么是跨域,下面的两个文章说的很好,请仔细阅读后,然后自己去动手 ...
- 服务端解决跨域问题的方案(二)
一分钟说明 本文主要基于Nginx的配置来解决服务端跨域问题. 涉及知识点: - Nginx的配置 Nginx的跨域配置 location /project {proxy_pass http://10 ...
- h5跨域访问图片_网页保存为图片及高清截图的优化 | canvas跨域图片配置
本次技术调研来源于H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 将整个网页保存为图片是一个十分有趣的功能,常见于H ...
最新文章
- 【web安全】Xss Exploits and Defense翻译2
- Android开发(五)——计时器
- 哇、、、、C++ 实现单向链表
- 安全预警:独立发布的Oracle严重 CVE-2018-3110 公告
- SpringData JPA整理
- Java基础:JDBC
- ET代理_切换ip软件网络功能。
- Gradle教程--基础篇
- DVD驱动器打开拒绝访问
- 思迈特软件Smartbi:传统BI被“革命”,AI是BI技术未来的发展趋势
- 省市县数十万数据集PM2.5面板数据(1998-2020年)
- 51单片机:HCSR04超声波测距模块及1602显示—C51程序(超详细)
- Fiddler的下载与基本使用方法
- 约瑟夫环问题-以python为舟
- 就业指导——自我介绍与个人简历
- photoshopcs5 win7安装报错的解决
- deepin安装openJdk
- 游戏虚拟盘两台服务器,网维大师游戏虚拟盘如何设置
- 小米笔记本电脑的触控板突然用不了是怎么了
- Linux error函数 ——Linux编程
热门文章
- mysql的count报错_Mysql报错注入原理分析(count()、rand()、group by)
- JavaScipt30(第八个案例)(主要知识点:canvas)
- 云通讯短信验证码实例
- Maven下载Sql Server 2008的驱动包
- 写lua时需要注意的地方
- stringstream实例
- python sort()、sorted()
- java字符编码方式总结
- 微信分享朋友圈固定缩略图 php,微信转发或分享朋友圈带缩略图、标题和描述的实现方法...
- python interactive window_如果PySide应用程序是从IPython interactive cons运行的,上下文菜单就会消失...