标签:uri 9.png cat 使用 字符串 nginx type 执行 包括
解决nginx跨域问题访问请求外域URL无法访问,浏览器认为访问外域URL不安全,导致访问不了简称跨域问题。如下图:

#context配置段: server, location
Access-Control-Allow-Origin
    注释:"表示允许访问的外域URI"
Access-Control-Allow-Origin:*
    注释:""*"允许访问任何外域URL"
Access-Control-Allow-Methods
    注释:"首部字段用于预检请求的响应。其指明了实际请求所允许使用的 HTTP 方法"
Access-Control-Allow-Credentials
    注释:"表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可"
A 1.允许单域名跨域
    add_header ‘Access-Control-Allow-Origin‘ ‘http://ky.test.com‘;
    add_header ‘Access-Control-Allow-Credentials‘ ‘true‘;
    add_header ‘Access-Control-Allow-Methods‘ ‘GET,POST,OPTIONS‘;
B 2.允许多域名跨域
    #nginx跨域配置
    #配置段context: http
    #map指令用来创建变量,仅在变量被接受的时候执行视图映射操作
    map $http_origin $corsHost {
    #默认值,当没有设置 default,将会用一个空的字符串作为默认的结果
    default 0;
    "~http://ky.test1.com" http://ky.test1.com;
    "~https://ky.test1.com" https://ky.test1.com;
    "~http://ky.dev1.com" http://ky.dev1.com;
    "~https://ky.dev1.com" https://ky.dev1.com;
    }
    #配置段context: server, location
    add_header ‘Access-Control-Allow-Origin‘ ‘$corsHost‘;
    add_header ‘Access-Control-Allow-Credentials‘ ‘true‘;
    add_header ‘Access-Control-Allow-Methods‘ ‘GET,POST,OPTIONS‘;
C 3.允许来自任何域的访问
    add_header Access-Control-Allow-Origin ‘*‘;
#重载nginx
nginx -t
nginx -s reload
#跨域测试
见下图标红内容 ↓

标签:uri 9.png cat 使用 字符串 nginx type 执行 包括
原文地址:http://blog.51cto.com/dropak/2316476