2015-10-09 47 views
0

我正在使用PhoneGap和AngularJS構建Android應用程序。PhoneGap上的發佈請求不起作用

對於到達服務器端我使用的AngularJS

的$ HTTP服務與GET方法到達服務器端時Evrything工作正常。

使用POST後,似乎請求永遠不會離開應用程序。 瀏覽器頁面上的相同過程完美地工作。

這裏是我的POST請求

$http.post(URL_REQUEST,data,{'headers':{'Content-Type':'application/json' }}) 
.success(function(d, status, headers, config, statusText) { 
    console.log(" success"); 

}).error(function(d, status, headers, config) { 
    console.log(" error"); 
}); 

在我logcat中我得到這個作爲一個錯誤結果:再論broswer evrything

"status":403, 
"config":{"method":"POST", 
"transformRequest":[null], 
"transformResponse":[null], 
... 

完美的作品。在PhoneGap應用程序中,只有GET請求可以使用

+0

403是被禁止的。你能夠在服務器上登錄HTTP請求嗎?如果是這樣,我會比較從phonegap應用程序發送的POST和從瀏覽器發送的POST,然後你可以告訴。 – MegaAppBear

+0

嗨,沒有成功。該請求根本沒有到達過濾器。順便說一句,我正在使用genymotion模擬器。 –

回答

2

如果您使用的是Cordova 5,則可能需要在index.html文檔中配置您的Content Security Policy元標記以允許從其他服務器獲取內容。您可以指定每個服務器主機或通配符。默認情況下,它已關閉,因此您必須考慮安全性以及要啓用的內容。

下面是一個例子,它允許一個域(api.mydomain.com)訪問:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://api.mydomain.com"> 

你可以通配符這個,如果你想到處訪問。

+0

我正在使用Cordova 5.1.1和GenyMotion作爲模擬器。 –

+0

我有wildcare connect-src但仍然有這個問題。雖然所有請求工作正常,後者甚至不到達容器過濾器。有沒有人在genymotion上發佈過郵件要求? –

+0

我想連接到我的本地主機至極genymotion是http://10.0.3.2:8080,GET請求再次正常工作。但後者被封鎖,並立即用403 FORBIDEN代碼拋出錯誤 –