首页 > Web开发 > 详细

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

时间:2020-01-14 22:56:10      阅读:366      评论:0      收藏:0      [点我收藏+]

  今天搞了半天的跨域问题,想通过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跨域不起作用的可能解决方法

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!