Nginx配置跨域支持功能

摘要:
所谓同源性是指只有当浏览器执行脚本时,才会执行相同的域名、协议和端口。如果不是同一个源,当请求数据时,浏览器将在控制台中报告异常,提示拒绝访问。跨域意味着页面a想要获得页面b的资源。如果页面a和页面b的协议、域名、端口和子域名不同,则访问操作是跨域的,浏览器通常出于安全原因限制跨域访问,即不允许跨域请求资源。

涉及到多重跨域的话,项目访问会出现无法跨域的报错

即Java代码部分,需要进行注释掉:

//@CrossOrigin(allowCredentials = "true")

和下面的nginx设置同时允许开启了跨域功能 


配置示例:

        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods GET,POST,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,access-control-allow-origin,Authorization';

  

Access to XMLHttpRequest at 'https://manhua.wjoyxt.com/upload' from origin 'http://10.35.33.66:8083' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values 'http://10.35.33.66:8083, *', but only one is allowed.

程序内部如果已开启允许跨域,那么Nginx再次开启允许跨域的话,就会出现以上错误提示,所以两者只能only one开启

识别服务器允许的请求方法:

要找出服务器支持的请求方法,可以使用 curl 并发出 OPTIONS 请求:

curl -X OPTIONS http://example.org -i

该响应包含一个包含允许的方法的Allow头文件:

HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800Date: Thu, 13 Oct 2016 11:45:00 GMT
Expires: Thu, 20 Oct 2016 11:45:00 GMT
Server: EOS (lax004/2813)x-ec-custom-error: 1Content-Length: 0

跨域是前端开发中经常会遇到的问题,前端调用后台服务时,通常会遇到 No 'Access-Control-Allow-Origin' header is present on the requested resource的错误,这是因为浏览器的同源策略拒绝了我们的请求。
所谓同源是指,域名,协议,端口相同,浏览器执行一个脚本时同源的脚本才会被执行。如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。
 
跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。
注意:跨域限制访问,其实是浏览器的限制
 
# vim nginx.conf
http {
  ###start###
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  ###end ###
}

 add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Access-Control-Allow-Origin,Authorization';

免责声明:文章转载自《Nginx配置跨域支持功能》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CWE4.6标准中加入 OWASP 2021 TOP10linux 之 DolphinScheduler 安装步骤下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nginx下Redmine配置

安装redmine依赖的所有ruby包 cd .. gem install bundler #注意是在网站根目录下执行 bundle install --without development test rmagick #完成redmine依赖包的安装 bundler是用来管理ruby的包依赖的工具 为Rails生成cookies秘钥 rake gen...

nginx安装以及自启动脚本

前提条件:centos7,网络已经配置好 1、安装nginx1.1、安装依赖库 yum install gcc-c++ yum install -y pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 1.2、将从官网上下载下来的nginx-1.1...

nginx 限制ip访问频率和限速 (摘录)

限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃。   ...

Ansible入门系列--playbook

一、playbook基础 1、playbook是由一个或多个"play"组成的列表 2、play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的角色。Task实际是调用ansible的一个module,将多个play组织在一个playbook中,即可以让它们联合起来,按事先编排的机制执行预定义的动作 3、Playbook采...

配置https

一.nginx 的 ssl 模块安装 查看 nginx 是否安装 http_ssl_module 模块。 /usr/local/nginx/sbin/nginx -V 如果出现 configure arguments: --with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 第五部 nginx.conf 配置)。 二.安装...

windows下nginx安装、配置与使用

    目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。     相比apeach、iis,nginx以轻量级、高性能、稳定、配置简单、资源占用少等优势广受欢迎。 1)下载地址:   http://ng...