服务器与服务器之间发起的请求时不存在跨域的说法的,跨域是浏览器同源策略引起的,即:从某一个域请求其他域的各类资源,其中只要两个地址的域名、端口以及协议有不同的地方就会视为跨域,跨域资源无法直接获取,这是浏览器针对javascript发起的安全限制
ng一般可以通过反向代理或者access等配置解决跨域。
反向代理:是将被访问的服务端地址反向代理至当前ng的域名地址下,来解决跨域的问题。
access配置:通过对response加上允许跨域的头字段,浏览器收到response之后判断可跨域从而访问成功。

        add_header Access-Control-Allow-Methods *;
        #   预检命令的缓存,如果不缓存每次会发送两次请求
        add_header Access-Control-Max-Age 3600;
        #   带cookie请求需要加上这个字段,并设置为true
        add_header Access-Control-Allow-Credentials true;
        #   表示允许这个域跨域调用(客户端发送请求的域名和端口) 
        #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
        add_header Access-Control-Allow-Origin $http_origin;
        #   表示请求头的字段 动态获取
        add_header Access-Control-Allow-Headers 
        $http_access_control_request_headers;

也可以在ng用过if语句拦截无origin的请求

set $origin_flag 0;
if ($http_origin != '') {
        set $origin_flag "${origin_flag}0";
}
if ($http_origin !~ "(localhost(:)?(\d+)?)|((18tracking)\.(com|cn))$") {
        set $origin_flag "${origin_flag}0";
}
if ($origin_flag = "000") {
        return 403;
}

发热安啃
38 声望9 粉丝

FrankenFunc有梦想的6k菜鸟u