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