Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PhoneGap未发出AJAX(jsonp)请求_Javascript_Android_Jquery_Ajax_Cordova - Fatal编程技术网

Javascript PhoneGap未发出AJAX(jsonp)请求

Javascript PhoneGap未发出AJAX(jsonp)请求,javascript,android,jquery,ajax,cordova,Javascript,Android,Jquery,Ajax,Cordova,我一整天都在努力解决这个问题,在谷歌上到处搜索。这可能是因为我找不到有解决方案的那一页。。。但我已经研究了以下问题和解决方案: 这两种解决方案似乎都没有解决我的问题 我所要做的就是向我的远程服务器发出一个AJAX调用,上传一些参数并下载一些内容。此脚本在浏览器中工作得非常好,但根据Phonegap中对文件的微小更改,它要么抛出“超时”错误,要么只是简单地说“错误”。代码如下(AJAX端点是一个dev端点,我将保留它,以便您也可以尝试使用它): 装载 var serverRegHit=函

我一整天都在努力解决这个问题,在谷歌上到处搜索。这可能是因为我找不到有解决方案的那一页。。。但我已经研究了以下问题和解决方案:

这两种解决方案似乎都没有解决我的问题

我所要做的就是向我的远程服务器发出一个AJAX调用,上传一些参数并下载一些内容。此脚本在浏览器中工作得非常好,但根据Phonegap中对文件的微小更改,它要么抛出“超时”错误,要么只是简单地说“错误”。代码如下(AJAX端点是一个dev端点,我将保留它,以便您也可以尝试使用它):


  • 装载
var serverRegHit=函数(数据,httpStat){ $(“#应用程序状态ul”).append(“
  • 服务器注册正常,HTTP状态:“+httpStat+”
  • ”); $(“#应用程序状态ul”).append(“
  • 数据状态:”+JSON.stringify(数据)+“
  • ”); }; var serverRegFail=函数(数据,httpStat){ $(“#应用程序状态ul”).append(“
  • 服务器注册失败,HTTP状态:“+httpStat+”
  • ”); $(“#应用程序状态ul”).append(“
  • 数据状态:”+JSON.stringify(数据)+“
  • ”); }; $.ajax({url:http://keb.bz/gcm/?deviceid=12345", jsonp:“回调”, 数据类型:“jsonp”, 超时:25000, 成功:serverRegHit, 错误:serverRegFail});
    我曾尝试使用cordova 2.9,并将其降级为2.5,但这似乎也没有帮助

    My config.xml已被列入白名单。*和keb.bz域,在清单中,权限授予应用程序访问internet的权限-我认为这是可行的,因为它能够成功检索GCM设备ID

    我曾经尝试过通过AJAX使用JSON、JSONp、文本和各种数据类型,但这些都没有任何区别

    Cordova/PhoneGap中是否还有我遗漏的另一个配置点


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

    最后,我使用Cordova 2.5、jQuery 1.10(未使用jQuery Mobile)将res/config.xml设置为以下访问路径:

    <access origin="http://127.0.0.1*" />
    <access origin="http://keb.bz" subdomains="true" />
    <access origin=".*" />  <!-- only during development -->
    

    希望这是有用的人

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

    最后,我使用Cordova 2.5、jQuery 1.10(未使用jQuery Mobile)将res/config.xml设置为以下访问路径:

    <access origin="http://127.0.0.1*" />
    <access origin="http://keb.bz" subdomains="true" />
    <access origin=".*" />  <!-- only during development -->
    

    希望这是有用的人

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

    我上一次编写该应用程序是在2015年4月。 然后今天做了几个Tweek,没什么大不了的,完成了它,我所有的ajax请求都失败了。我做了,并警告错误字符串和所有它说的“超时”

    然后我将phonegap版本指定为3.7.0,并重新编译。。。我所有的ajax都恢复工作了。 不确定CLI5.1和5.2发生了什么变化,但它扼杀了我的应用程序


    短期的解决方案,一旦3.7可能不再被支持,我就会被改变卡住。。。我想我今天用在线PhoneGap编译器更新我的应用程序时也出现了类似的错误

    我上一次编写该应用程序是在2015年4月。 然后今天做了几个Tweek,没什么大不了的,完成了它,我所有的ajax请求都失败了。我做了,并警告错误字符串和所有它说的“超时”

    然后我将phonegap版本指定为3.7.0,并重新编译。。。我所有的ajax都恢复工作了。 不确定CLI5.1和5.2发生了什么变化,但它扼杀了我的应用程序


    短期的解决方案,一旦3.7可能不再被支持,我就会被改变卡住。。。我想是时候使用本机了

    Logcat控制台中有任何异常/错误吗?您确定jQuery库已成功加载吗?首先,您应该确保纯JavaScript工作,然后尝试测试jQuery是否正常。jQuery加载正常,因为它成功地将错误打印到DOM,并且在日志猫中没有发现任何异常。确保您的应用程序具有“网络访问”权限。哦,天哪,我真不敢相信我没有在清单中正确添加这个。谢谢你让我再次检查!网络访问是否解决了您的问题?Logcat控制台中是否存在任何异常/错误?您确定jQuery库已成功加载吗?首先,您应该确保纯JavaScript工作,然后尝试测试jQuery是否正常。jQuery加载正常,因为它成功地将错误打印到DOM,并且在日志猫中没有发现任何异常。确保您的应用程序具有“网络访问”权限。哦,天哪,我真不敢相信我没有在清单中正确添加这个。谢谢你让我再次检查!网络访问是否解决了您的问题?您在这方面取得了任何进展?我通过使用人行横道和将chromium降级到42x版本来“解决”它。我和你在一起感觉不好this@msander... 不,很遗憾没有。你在这方面有什么进展吗?我通过使用人行横道和将chromium降级到42x版本来“解决”它。我和你在一起感觉不好this@msander... 不,不幸的是没有。
    <script>
    $(document).bind("mobileinit", function(){
       $.mobile.allowCrossDomainPages = true;
    });
    </script>
    
    <uses-permission android:name="android.permissions.INTERNET" />
    <uses-permission android:name="android.permissions.NETWORK_ACCESS" />
    <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
    
    $.ajax({url:"http://keb.bz/gcm/?deviceid=12345",
            jsonp: 'callback',
            dataType: 'jsonp',
            timeout: 25000,
            success: serverRegHit,
            error: serverRegFail});