前端接口出现两次请求--认识简单请求和非简单请求

前端接口出现两次请求--认识简单请求和非简单请求_第1张图片
前端接口出现两次请求--认识简单请求和非简单请求_第2张图片

所有跨域的js在提交post请求的时候,如果服务端设置了可跨域访问

public static function setCrossDomain()
{
header(‘Access-Control-Allow-Origin: *’);
header(“Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept”);
header(‘Access-Control-Allow-Methods: GET, POST, PUT’);
}

都会默认发送两次请求,第一次是预检请求,查询是否支持跨域,第二次才是真正的post提交。

JS中出现这个现象原因在于你发送了一个非简单请求。

简单请求与非简单请求:

  • 请求方式:HEAD,GET,POST
  • 请求头信息:

    Accept
    Accept-Language
    Content-Language
    Last-Event-ID
    Content-Type 对应的值是以下三个中的任意一个
    application/x-www-form-urlencoded
    multipart/form-data
    text/plain

只有同时满足以上两个条件时,才是简单请求,否则为非简单请求

解决方法:
由上面定义可以看出,

  • 把你的post提交改成get提交,就不会两次请求
  • 或者将post的header改成application/x-www-form-urlencoded,
    multipart/form-data 或 text/plain中的一种

你可能感兴趣的:(Vue,前端,VUE细节,http,前端)