zoukankan      html  css  js  c++  java
  • Nginx配置跨域支持功能

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

    即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';

  • 相关阅读:
    2008年秋季毕业设计总体安排
    2008秋季计算机软件基础0903课堂用例(1)
    收藏:微软新技术不断,开发者如何面对?
    2008秋季计算机软件基础0901课堂用例
    2008秋季计算机软件基础0908课堂用例(1)
    WebBrows仿造Cookie
    ScriptCase价格调整通知
    JavaMail API简介
    Spring攻略学习笔记(3.05)重用切入点定义
    verletjs:超酷的开源JavaScript物理引擎
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/10406601.html
Copyright © 2011-2022 走看看