2016-03-12 14 views
1
$scope.login = function(email,password){ 
$http({ 
method: 'POST', 
url: 'http://example.com/login', 
headers: { 
'owner': $rootScope.secret 
}, 
data: {email:email, password:password } 
}).then(function successCallback(response) { 
console.log(response.data) 
}, function errorCallback(response) { 
console.log(response.data) 
}); 
} 

但在我的網絡選項卡中我看到2的要求,一個是通過離子:

enter image description here

第二個是我的POST請求,我想知道爲什麼在那裏有一個OPTION方法。

+2

這是起飛前的選項CORS請求。 https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#Preflight_example – georgeawg

+0

@georgeawg這是一個錯誤?我應該如何避免這種情況? –

+0

這是正常的,沒有什麼可以避免的。離子框架發出OPTIONS請求以獲得執行跨源資源請求的權限。這是瀏覽器Web安全系統的一個自然部分。 – georgeawg

回答

0

這是一個CORS問題。
你可以做這些事情:

  • --disable-web-security啓動鉻。

  • 使代理服務器轉發呼叫。

  • 這個頭添加到您的來電:

    {'Content-Type': 'application/x-www-form-urlencoded'} 
    
+0

這是隻在鉻?我以後應該在生產中關心這個嗎? –

+0

對於生產,我強烈建議只製作一個簡單的代理服務器。 – deadlocked247

+0

代理服務器寧靜?這怎麼解決cors? –