前端上传到服务端报错'Access-Control-Allow-Origin'

问题与解决办法

前端携带cookie凭证信息请求服务端接口,当后台’Access-Control-Allow-Origin’:*这样设置时,遇到报错,
《前端上传到服务端报错'Access-Control-Allow-Origin'》

Access-Control-Allow-Origin不能为 * ,当请求的证书模式为“include”时
这是你的请求没有通过的原因
这个证书模式初始化是通过Ajax的withCredentials属性控制的

虽然有报错,但请求数据是成功的。只不过请求成功之后的操作无法进行下去
《前端上传到服务端报错'Access-Control-Allow-Origin'》

要解决这个报错问题,前端需要对withCredentials参数设置 withCredentials: false,

 this.$axios({
    method: 'post',
    url:'http://upload-z2.qiniup.com/',         // 七牛云的上传地址,根据自己所在地区选择,我这里是华南区
    headers: {
        'Content-Type': 'multipart/form-data'
    },
    withCredentials: false,
    data:formdata
}).then((res)=>{
    console.log(res.data)

})

敲黑板,知识点:

后台用session记录的用户登录
1、前端发出的请求如果是携带Cookie身份信息

2、服务端的Access-Control-Allow-Origin如果设置的是*

那么这个请求会失败,在Options预请求时会被拦截下来。

参考文献

MDN文档 :
https://developer.mozilla.org…

    原文作者:AaronYuan
    原文地址: https://segmentfault.com/a/1190000015661752
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞