phpstudy nginx设置CORS跨域不起作用的可能解决方法
今天搞了半天的跨域问题,想通过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; #... }
以上如有不对之处,敬请指正!
相关推荐
yiranpiaoluo 2020-11-04
yyyxxxs 2020-06-26
Chydar 2020-05-16
ysmh00 2020-05-14
yuxinshuier 2020-04-21
wolfjin 2020-04-21
fengchao000 2020-04-11
somebodyoneday 2020-03-06
zagnix 2019-11-16
wenf00 2019-11-04
baijinswpu 2019-10-31
wsd 2015-05-29
adonislu 2019-09-08
HAcSeeking 2018-11-05
chenchuanwen 2019-05-24
haocxy 2014-08-21
sunyu0 2019-06-29