accesscontrolallowcredentials php,thinkphp5.1 添加 允许自定义请求标头(Access-Control-Allow-Headers)...

Access-Control-Allow-Headers 用于给预检请求(options)列出服务端允许的 自定义标头,如果前端发送的请求 中包含自定义的请求标头,且该标头不包含在Access-Control-Allow-Headers中,该请求无法成功发起.

在thinkphp5.1中浏览框架代码:

(路径:\thinkphp\library\think\route\Rule.php)

$header = [

'Access-Control-Allow-Credentials' => 'true',

'Access-Control-Allow-Methods' => 'GET, POST, PATCH, PUT, DELETE',

'Access-Control-Allow-Headers' => 'Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With',

];

看到 允许的标头 有 Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With

项目中我要自定义一个标头 Operator_id, 根据thinkphp5.1 文档 跨域请求 这一章介绍:https://www.kancloud.cn/manual/thinkphp5_1/489844

在路由配置中这样写 就OK了:

Route::header('Access-Control-Allow-Headers', 'Operator_id,Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With')//允许自定义标头 Operator_id

->allowCrossDomain();//路由全局允许跨域

遇到个坑:

将项目部署到nginx 上后 获取不到 这个 operator_id ,原因是 nginx 默认忽略 带下划线的 header

2+

1.如需转载本站原创文章,请务必注明文章出处并附上链接,非常感谢。

2.本站用于记录个人 工作、学习、生活,非商业网站,更多信息请 点击这里

发表评论邮箱地址不会被公开。

评论

姓名

电子邮件

站点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值