码迷,mamicode.com
首页 > Web开发 > 详细

phpstudy nginx设置CORS跨域不起作用的可能解决方法

时间:2020-01-14 22:15:39      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:错误   cal   资料   增加   fastcgi   add   split   ESS   新建   

  今天搞了半天的跨域问题,想通过nginx配置跨域,希望以后本地调试程序都不用为这件事烦心。无非就是设置几个请求头:

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Allow-Headers *;
技术图片

但是配置半天没配好,真的是半天。。后来配好了,在此分享给大家,希望给大家一点帮助。

 

请求PHP文件报错CORS

  配置那三行,不能写在 localhost_80.conf 的

location / {
    #...
}
技术图片

里面,因为有反向代理!继续往下看这个文件,会看到

location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
}
技术图片

必须写在这里面。

 

以GET方式请求静态文件(.txt, .json等)报错CORS

  因为我的网站根目录下有一个 nginx.htaccess 文件,里面也有

location / {
    #...
}
技术图片

localhost_80.conf 文件里面 include 了这个文件,所以配置 conf 文件不起作用,必须在这里面配置。不过新建的网站不会自己有,是我之前配置了伪静态才生成的。

 

以非GET方式请求静态文件(.txt, .json等)出现405

  这种错误解决方法不止一种,参考网上资料,在 localhost_80.conf 里面增加一行:

location / {
    #...
    error_page 405 =200 $uri;
    #...
}
技术图片
 
 

  以上如有不对之处,敬请指正!

phpstudy nginx设置CORS跨域不起作用的可能解决方法

标签:错误   cal   资料   增加   fastcgi   add   split   ESS   新建   

原文地址:https://www.cnblogs.com/kill370354/p/12194322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!