后端工程师写完接口之后传到远程服务器上,为了便于本地调试,我特地去服务器上的nginx配置允许CORS。
配置过程
服务必须返回 Access-Control-Allow-Origin : enabledhost.com 的 http response,才会允许跨域访问,我先去服务器上找到 nginx 的配置文件,然后直接配置以下内容:
location /
{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
include fastcgi.conf;
}
完事之后进行接口调用,发现还是不管用,于是就进行各种搜,网上的答案五花八门,有说GET类型和POST类型的请求配置不一样,也有说一样的。 最后还是问了搞后端的朋友,应该写在一个关于php支持的配置文件里才行,于是我更正了配置:
location —— [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
include fastcgi.conf;
}
至此,就OK了,大家在进行nginx跨域配置时需要注意以下几点:
1、Access-Control-Allow-Origin 不要像我一样设置 * ,这样不安全。我只是为了临时使用方便,后面还会关掉此设置
2、设置时写在php相关的location配置中
3、不要忘记这条配置 add_header Access-Control-Allow-Headers X-Requested-With; 网上搜到的答案大部分都少这一条。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有