技术篇 >>

关于前端跨域 一次动作 两次请求的问题

   

前后端分离,发现一种情况,在前端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)); 
}

    

      


 


评论