在开发项目过程当中,发如今使用axios调用接口都会有两个请求,第一个请求时,看不到请求参数,也看不到请求的结果;只有第二次请求时才会有相应的请求参数以及请求结果;前端
那为甚么会有这么一次额外的请求呢,后面通过查证资料发现:ios
若是只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件而且跨域的时候,就会自动发起这个请求了。这样就很显然了,咱们有 upload 事件绑定(通常都是本地调试,因此会有跨域),看了下 axios 文档,发现config配置文件中有两个参数:分别用于处理上传和下载事件,也就是这里绑定了 upload 事件,因此每次请求都会有个 option 请求。ajax
// onUploadProgress: function(progressEvent) { // // Do whatever you want with the native progress event // }, // onDownloadProgress: function(progressEvent) { // // Do whatever you want with the native progress event // },
解决方案以下:axios
①.直接注释掉配置文档中这两个事件的请求就行了;后端
②.跨域请求须要先发一次 option 预请求,options是检验是否容许跨域的,若是不但愿options 请求,直接让后端遇到option 直接返回就能够了,前端可不作处理;跨域