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

  • 相关阅读:
    Mybatis学习笔记
    Java——设计模式
    Java——多线程
    Java——集合
    DAO层、Service层、Controller层、View层
    Mybatis整合spring
    Spring中的DI和IOC
    事务
    Xml实现AOP
    2018.3.10考试的试题解析
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/10406601.html
Copyright © 2020-2023  润新知