我使用: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