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()注释居然可以调用成功了!