PhoneGap不发出AJAX(jsonp)请求

我一整天都在努力解决这个问题,并且已经在各处搜索了一下。 可能是因为我找不到一个解决方案的页面……但我已经看过问题和解决方案,例如:

Ajax调用phonegap没有发送请求

JQuery mobile + Phonegap:Ajax调用无法在Android Emulator上运行

并且那里的解决方案似乎都没有解决我的问题。

我想做的就是向我的远程服务器发出一个AJAX调用,上传一些参数并下载一些内容。 此脚本在浏览器中完美运行,但根据Phonegap中文件的微小更改,会抛出“超时”错误,或者只是说“错误”。 代码如下(AJAX端点是一个开发端点,我会把它留下来,所以你也可以尝试点击它):

     
  • Loaded
var serverRegHit = function(data, httpStat){ $("#app-status-ul").append('
  • Server Reg OK, HTTP status: '+httpStat+'
  • '); $("#app-status-ul").append('
  • Data Status: '+JSON.stringify(data)+'
  • '); }; var serverRegFail = function(data, httpStat){ $("#app-status-ul").append('
  • Server Reg FAIL, HTTP status: '+httpStat+'
  • '); $("#app-status-ul").append('
  • Data Status: '+JSON.stringify(data)+'
  • '); }; $.ajax({url:"http://keb.bz/gcm/?deviceid=12345", jsonp: 'callback', dataType: 'jsonp', timeout: 25000, success: serverRegHit, error: serverRegFail});

    我曾尝试使用cordova 2.9,并降级到2.5,但这似乎也没有帮助。

    我的config.xml已列入白名单。*和keb.bz域,权限允许应用程序访问清单中的互联网 – 我认为这是有效的,因为它能够成功检索GCM设备ID。

    我尝试过通过AJAX使用JSON,JSONp,TEXT和各种dataType,但这些都没有任何区别。

    我错过了Cordova / PhoneGap中的另一个配置点吗?

    任何帮助在这里将不胜感激。

    感谢@xioawl让我仔细检查我的manifest.xml。 结果我没有在那里正确配置权限。

    最后,我结束了使用Cordova 2.5,jQuery 1.10,(没有使用jQuery Mobile),使用以下访问路径设置我的res / config.xml:

         

    在包含所有JavaScript库之后放置此代码段:

      

    并使用以下manifest.xml权限:

        

    我的JSONp查询继续如下所示:

     $.ajax({url:"http://keb.bz/gcm/?deviceid=12345", jsonp: 'callback', dataType: 'jsonp', timeout: 25000, success: serverRegHit, error: serverRegFail}); 

    希望这对某人有用!

    当我使用在线PhoneGap编译器更新我的应用程序时,我今天遇到了类似的错误…

    我上次在2015年4月完成了应用程序。然后今天做了一些调整,没有什么重大的,遵守它,我的所有ajax请求都失败了。 我做了并警告错误字符串,所有它都说“超时”。

    然后我将phonegap-version指定为3.7.0,并重新编译…我的所有ajax再次工作。 不确定CLI5.1和5.2改变了什么,但它杀了我的应用程序。

    短期解决方案,很快就可能不再支持3.7了,然后我将被卡住进行更改…我猜的好时机