我有一個使用webpack-simple
選項生成的Vue應用程序。我試圖做一個GET
請求https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en
,但我得到的錯誤:VueJS使用vue-resource使用webpack-simple dev服務器的CORS問題
XMLHttpRequest cannot load https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access.
我使用VUE資源,並補充說:
Vue.http.headers.common['Access-Control-Allow-Origin'] = '*'
這沒有任何影響。
我也添加了這個在webpack.config.js
的devServer
選項:
devServer: {
historyApiFallback: true,
noInfo: true,
headers: {
"Access-Control-Allow-Origin": "*"
}
}
那不是解決問題要麼;錯誤消息保持不變。
如何解決這個問題?
我會注意到'cors-anywhere.herokuapp.com'是一個體面的*臨時*解決方案,但不是您希望在生產中使用的解決方案,因爲它可能涉及將敏感數據通過其他人的應用程序傳遞。 – ceejayoz
@ceejayoz真的,但在這種情況下,請求是一個簡單的GET沒有憑據,正在做什麼似乎是一個公共可用的服務,返回隨機引號。因此,在這種情況下,代理僅僅是解決這個問題的一種方式,即該服務的提供者並不打算將Access-Control-Allow-Origin響應頭添加到響應自身中。似乎沒有任何好的理由,他們不能...... – sideshowbarker