前后端分离,发现一种情况,在前端ajax请求数据的时候,有时候会向后台一次性发送两次请求,这两次请求第一次无返回数据,第二次才会返回正确数据。
在两次请求之后的一段时间内,是只发送一次请求的。过了一段时间,就又会出现一次动作 两次请求的情况。
而本项目,后台采用token检验机制,前台发送请求必须将token放到request header中,而请求头中携带自定义参数,浏览器就认为请求是复杂跨域请求,所以浏览器在真正
请求之前会发送一次预检请求,检测服务器是否支持真实请求进行跨域访问。
最后解决办法(php):
public function returnJson ($code, $msg='', $data = []) { header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization"); // header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE'); header('Access-Control-Max-Age: 86400'); header('Access-Control-Expose-Headers: authorization,Authorization'); header('Authorization:'.$this->token); return json($this->return_data($code, $msg, $data)); }