前端发出的请求若是是附带身份验证(withCredentials:true)前端
然后端的Access-Control-Allow-Origin若是设置的是*vue
那么这个请求会失败,在Options预请求时会被拦截下来。后端
来源 MDN文档 :
https://developer.mozilla.org...cookie
在一个文件上传的接口出现问题。dom
大概意思是说,在预请求时,请求就失败了。 Access-Control-Allow-Origin不能为 * ,当请求的证书模式为“include”时 这是你的请求没有经过的缘由 这个证书模式初始化是经过Ajax的withCredentials属性控制的
<el-upload :action=path :on-success="import_upload_ok" :on-error="import_error" :with-credentials="true" :show-file-list=false :headers=token ref=dom> <el-button class="first-btn upload-btn" type="primary"> <span class="el-icon-plus"></span> 同步快递信息 </el-button> </el-upload>
能够看到我设置了:with-credentials="true"spa
得知with-credentials是用来设置是否支持发送cookie凭证信息的字段code
能够理解为这是一条http协议或者CORS的规则。blog
就是当request中设置了withCredentials : true,也就是请求携带了验证身份信息时,token
response的Access-Control-Allow-Origin : *,(而是应该有请求身份过滤)接口
不然的话,请求会失败。
这里的解决办法有2个,
由于我这里还真不必传递Cookie身份信息,因此我就选择设置withCredentials:false