2015-10-08 93 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

对我而言,两者都不起作用。 –