php避免options请求,OPTIONS请求 & 已阻止跨源请求:CORS 头缺少 'Access-Control-Allow-Origin'...

以node koa为例

app.use(function *(){

let {method, url, header} = this.request;

this.set('Access-Control-Allow-Origin', '*');

if (method.toLowerCase() === 'options') {

this.set('Access-Control-Allow-Credentials', 'true');

this.set('Access-Control-Allow-Methods', 'POST,GET,OPTIONS,PUT,DELETE');

this.set('Access-Control-Allow-Headers', 'cache-control,content-type,hash-referer,x-requested-with');

this.body = '';

return false;

}

// 下面是正常逻辑.....

});

app.listen(9870);

this.set('Access-Control-Allow-Headers', 'cache-control,content-type,hash-referer,x-requested-with'); //注意值是小写 !!!!!

这里判断method是因为浏览器第一次会发起一个options来检查服务器是否支持跨域访问,如下图

bVV5yY?w=604&h=266

浏览器先去判断服务器是否返回了指定的值(上面设置的那些),如果是支持的,才会去发起真正的请求,如下图

bVV5zj?w=609&h=232

以上这个GET才是我真正发起的请求

虽然也可以不去判断是否是options请求,但这样的话会返回不必要的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值