thinkphp5 前后端分离 解决跨域问题

后端thinkphp5 服务器nginx

前端:

出现跨域问题了:下面是报错:

两个方法入手 :

前端修改header代码:

1.content-type 去掉这个 或者应该根据请求方式请求数据格式动态生成的  

2.后端服务器上加跨域代码:

location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization';

    if ($request_method = 'OPTIONS') {
        return 204;
    }
}

意思是允许get和post请求 。接收

如果需要别的请求方式也可以逐个加进去

add_header Access-Control-Allow-Methods 'GET, POST, PUT,DELETE,OPTIONS';

不推荐跨域代码加php里面,最好是加服务器里面

举个例子:

比如一台服务器。a.com ,b.com,c.com

a.com是做支付的 b.com是前端项目 c.com是后端的

后端项目是一个(一套代码)

比如需求是b.com可以请求 后端接口(能跨域) ,其他域名不可以。如果你把跨域代码加后端php里面。那默认就是全部可以跨域。这样非常危险

最理想的是服务器上加b.com  可以跨域。其他不能跨域的域名都不能加进去

最后。如果不能理解。就直接ngix上面加这段就完事儿

listen 80;

server_name  b.com

location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization';

    if ($request_method = 'OPTIONS') {
        return 204;
    }
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值