手机端发送预请求后无法自动发起第二次get或者post的请求

服务器只能接收到第一次的预请求(options)
无法接收到第二次get或者是post 的请求

clipboard.png

这是CORS处理代码

在PC端没有问题

阅读 3.7k
3 个回答

你的客户的是通过https发起的请求吗?
如果是,Acess-Control-Allow-Origin是不能设置为*的。你尝试使用如下的配置:

if(isset($_SERVER['HTTP_ORIGIN'])){
    header('Access-Control-Allow-Origin:' . $_SERVER['HTTP_ORIGIN']);
}
header('Access-Control-Allow-Credentials:true');
if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    header('Content-Length:0');
    header('Content-Type:text/plain');
    header('Access-Control-Max-Age:86400');
    header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization');
    exit;
}

确定一下,是请求发出去了,后台没收到;
还是压根就没产生请求;

  1. 如果已产生请求,在方法体第一行,直接打印$_GET或者$_POST看有无数据
  2. 如果没产生请求,检查一下前台js代码

也有可能是缓存问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题