nginx跨域解决方法

最近一直遇到以下几个问题:

1、JavaScript JS 跨域问题

2、HTTP 错误 405 - 用于访问该页的 HTTP 动作未被许可 HTTP 错误 405.0 - Method Not Allowed

3、Nginx 处理跨域问题、OPTIONS 方法的问题

Method = "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT" | extension-method
extension-method = token

nginx跨域解决方法

在Nginx location 里加上如下代码可以解决跨域问题,包括以上几个问题都可以得到解决。

具体如下:

在Nginx配置文件nginx.conf加入如下代码:

location / {

        # 跨域设置
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Credentials' 'true'; 
       
        if ( $request_method = 'OPTIONS' ) { return 200; }

 }

注意1:

必须放在 location ... { ... }里面才能用if条件判断。

注意2:

如果你遇到错误提示“nginx: [emerg] unknown directive”未知指令。

原因是: if 后面 必须有空格跟括号隔开才行。

解决方法如下:

 if ( $request_method = 'OPTIONS' ) { return 200; }
原文出处:https://www.fujieace.com/nginx/request_method-options.html
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。