2015-10-08 132 views
2

谷歌搜索幾個小時後,我必須編寫cordova(CLI 5.3.3)應用程序返回通過jQuery AJAX調用時找不到頁面。Cordova JQuery AJAX不起作用

我已經遵循了白名單插件(https://github.com/apache/cordova-plugin-whitelist)中的所有步驟,但仍然沒有運氣。

我已經包括在config.xml中這些線路

<access origin="*" /> 
<allow-navigation href="*" /> 

還包括CSP像

<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:"> 

AJAX請求像

$.ajax({ 
        beforeSend: function() { $.mobile.loading("show"); }, //Show spinner 
        complete: function() { $.mobile.loading("hide"); }, //Hide spinner 
        url: weburl+"lgoin.php",       
        data: { email: $("#txtemail").val(), password: $("#txtpassword").val()}, 
        type: "POST",      
        success: function(data) {      
         var response=$.parseJSON(data);       
         }       
        },      
        error: function (jqXHR, exception) { 
         var msg = ''; 
         if (jqXHR.status === 0) { 
          msg = 'Not connect.\n Verify Network.'; 
         } else if (jqXHR.status == 404) { 
          msg = 'Requested page not found. [404]'; 
         } else if (jqXHR.status == 500) { 
          msg = 'Internal Server Error [500].'; 
         } else if (exception === 'parsererror') { 
          msg = 'Requested JSON parse failed.'; 
         } else if (exception === 'timeout') { 
          msg = 'Time out error.'; 
         } else if (exception === 'abort') { 
          msg = 'Ajax request aborted.'; 
         } else { 
          msg = 'Uncaught Error.\n' + jqXHR.responseText; 
         } 
         alert(msg); 
        }, 
       }); 

AJAX請求總是與按摩錯誤結束回撥如「請求的頁面未找到。」[404]「

注: - 我已經測試web服務與維格爾REST API擴展和行之有效的

任何人可以幫助我這個問題。

感謝您的時間和提前考慮。 -Naitik

+0

總是404或其他錯誤呢? – isherwood

+0

也許你的服務器不公開給設備可以連接到服務。您可以通過設備中的打開瀏覽器進行測試並輸入url + params並查看結果。如果在瀏覽器中它工作,那麼請檢查AndroidManifest.xml文件(在Android中),並確保有<使用權限android:name =「android.permission.INTERNET」/>應用程序可以通過互聯網訪問。 –

+1

@usherwood總是404.在cordova cli 3.8上運行的其他phonegap應用程序(具有相同框架的舊應用程序)在同一臺服務器上工作得很好。請求需要時間才能調用服務器,但始終以404返回,儘管服務已存在(服務器正在HTTPS上運行)。 – user2617214

回答

0

基本上,你應該更新cordova-whitelist-plugin。

插件可與

cordova plugin add cordova-plugin-whitelist

或安裝通過添加

<plugin name="cordova-plugin-whitelist" spec="1" />

到config.xml中,然後將其配置有

<allow-navigation href="*" />

代替舊的,<access origin="*" />標籤。

請參閱here for details

+0

對我而言,兩者都不起作用。 –