vue-element-admin has been blocked by CORS policy: Response to preflight request doesn‘t pass access

 vue-element-admin has been blocked by CORS policy: Response to preflight request doesn‘t pass access_第1张图片

Access to XMLHttpRequest at 'http://xxx' from origin 'http://localhost:9528' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Google 翻译一下:

访问位于xxx 已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP正常状态。

使用vue-element-admin框架时明明设置了跨域,post请求正常,get请求就报错。网上查了很多资料说是CORS 跨域限制以及预请求验证

在请求后端时,已经被CORS策略阻止拦截:对于飞行请求的响应没有通过访问控制检查:在被预检请求的资源上没有被允许
需要在调用后, 配置文件中的跨域请求头中添加“author”,即可解决预飞行请求错误
# 配置跨越请求头
CORS_ALLOW_HEADERS = (
    'x-requested-with',
    'content-type',
    'token',
    'authorization',
    'author',
) 然而也没用。
———————————————— 

1. request.js 已设置跨域

const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url 
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    Accept: 'application/json'
  }
})

2. vue.config.js设置proxy也没有用

3. user.js也试过加"no-cors"

export function getInfo(loginIdentifer) {
  return request({
    url: 'xxx/GetLoginInfo',
    method: 'get',
    // mode: 'no-cors',
    params: { loginIdentifer }
  })
}

尝试找一些请求头相关的,然后发现request.js 把config.headers['X-Token'] = getToken()注释居然可以调用成功了!

vue-element-admin has been blocked by CORS policy: Response to preflight request doesn‘t pass access_第2张图片

你可能感兴趣的:(vue,vue.js,javascript,前端)