通常,當我向非本地服務器發出jQuery請求時,它會應用Cross-site HTTP request規則,並最初發送OPTIONS請求以驗證端點的存在,然後發送請求,即Vue資源跨站點HTTP請求
GET to domain.tld/api/get/user/data/user_id
jQuery工作正常,但我想使用Vue資源來處理請求。在我的網絡日誌中,我只看到實際的請求(最初沒有OPTIONS請求),並且沒有收到數據。
有人有一個想法如何解決這個問題?
示例代碼:
var options = {
headers: {
'Authorization': 'Bearer xxx'
}
};
this.$http.get(config.api.base_url + 'open/cities',[options])
.then(function(response){
console.log('new request');
vm.cities = response;
}, function(error){
console.log('error in .js:');
console.log(error);
});
解決方案:
正如@Anton提到的,這是沒有必要有兩個請求(環境可以忽略不計)。不知道我改變了它的工作,但請求給了我一個錯誤。它包括正確設置標題。頭不應該作爲選項被通過,但作爲HTTP的屬性:
this.$http({
root: config.api.base_url + 'open/cities', // url, endpoint
method: 'GET',
headers: {
'Authorization': 'Bearer xxx'
}
}).then(function(response){
console.log('new request');
vm.cities = response;
}, function(error){
console.log('error in .js:');
console.log(error);
});
謝謝你們,這是一個團隊的努力:)
你能告訴我們一個litlle你正在使用的代碼ans你會使用哪些選項?你有沒有看過> https://github.com/pagekit/vue-resource/blob/master/docs/config.md? –
增加了一些代碼...查看了vue-resource的所有配置可能性,但控制檯只顯示一個請求...在問題中解釋。 – Lamarck
我不知道你有沒有注意過,但在Chrome Dev Tools的網絡標籤中,有一個jQuery請求(在本例中爲城市),它顯示兩次(即使我只編碼了一個請求),一次檢查如果它作爲端點有效,另一個從後端獲取返回的對象。現在使用Vue-Resource,它只有第一個請求。允許我在問題 – Lamarck