zoukankan      html  css  js  c++  java
  • nginx*解决跨域

    /usr/local/nginx/conf/nginx.conf

    # 代理接口
    location ^~ /api/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept;
        proxy_set_header referer "http://shanghaimon.aegis-info.com";
        proxy_set_header host "shanghaimon.aegis-info.com";
        proxy_pass http://shanghaimon.aegis-info.com/api/;
    }

    location ^~ /qyapi/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept;
        proxy_set_header referer "https://qyapi.weixin.qq.com";
        proxy_set_header host "qyapi.weixin.qq.com";
        proxy_pass https://qyapi.weixin.qq.com/;
    }

    然后刷新配置

    /usr/local/nginx/sbin/nginx -s reload

    疑难杂症
    如果遇到
    'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed等等错误
    contains multiple values "*" 意思就是设置了2次跨域,但是只有一个是允许的。
    改动办法又很多,比如服务器直接允许option请求,服务器就直接可以被跨域访问了
    或者移除其中的任意一个就好了。如果服务器代码设置了允许跨域,使用Nginx代理里面就不需要了,或者移除服务器中的允许跨域

    location ^~ /country/ {
        if ($request_method = 'OPTIONS') {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
            return 200;
        }
        proxy_set_header referer "http://114.116.25.112:18116";
        proxy_set_header host "http://114.116.25.112";
        proxy_pass http://114.116.25.112:18116/;
    }
  • 相关阅读:
    es5和es6的区别
    如何将word文档内容在网页显示方法
    实现在线浏览PDF文件的方法
    移动端开发兼容问题
    常见的浏览器兼容问题和解决方法
    弹层
    猜数字游戏
    米字格画布
    时钟制作
    关于屏幕高度
  • 原文地址:https://www.cnblogs.com/dshvv/p/13729996.html
Copyright © 2011-2022 走看看