我使用:CORS问题与Vue.js
- 的Vue 2.0.3
- VUE路由器2.0.1
- vuex 0.8.2
- VUE资源0.7.0
,并试图使用远程API的时候,而不是在本地运行一个,我得到CORS错误,如以下
登录到我的网页后,vue-resource.common.js?2f13:1074 OPTIONS
https://mywebsite/api/auth/login
(anonymous function) @ vue-resource.common.js?2f13:1074
Promise$1 @ vue-resource.common.js?2f13:681
xhrClient @ vue-resource.common.js?2f13:1033
Client @ vue-resource.common.js?2f13:1080
(anonymous function) @ vue-resource.common.js?2f13:1008
XMLHttpRequest cannot load https://mywebsite/api/auth/login.
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost:8080' is therefore not allowed
access. The response had HTTP status code 415.
现在我有在Azure中运行的API,并且由于它允许我测试来自Postman的呼叫,所以我很确定CORS头文件在后端正确设置。 不太确定Vue和前台。
我有这样的情况,配置文件:
export const API_ROOT = 'https://mywebsite/api/'
export const AuthResource = Vue.resource(API_ROOT + 'auth{/action}')
比即我打电话这个动作,如:
login: function (userData) {
return AuthResource.save({action: 'login'}, userData)
}
最后,因为我通过在vuex子模块I令牌检查登录身份验证有 只是一个简单的头检查状态。
var updateAuthHeaders =() => {
var token = JSON.parse(localStorage.getItem("auth_token"))
if (token != null){
Vue.http.headers.common['Authorization'] = token
}else{
Vue.http.headers.common['Authorization'] = null
}
}
我试图在这里添加Vue.http.headers.common['Access-Control-Allow-Origin'] = true
,但没有帮助的情况下。
有什么想法?我在做什么错误..我想这不适用于其他电话,如果它不适合登录。
这似乎不是一个CORS问题(如415错误所示),并且您的客户端代码没有任何问题。您能否提供您的后端的关键代码片段? –
你是完全正确的!我的问题是API项目不允许从JS内部浏览器访问 – desicne