gpt4 book ai didi

android - 使用 ajax 连接到本地服务器时 Cordova 应用程序超时

转载 作者:行者123 更新时间:2023-11-29 00:29:40 24 4
gpt4 key购买 nike

我到处搜索以尝试解决这个问题,但无济于事。我正在尝试将 Phonegap 应用程序连接到我机器上本地托管的服务器,但它总是超时。我用了this code帮助我创建一个简单的应用程序并最终完全复制了 Sam Croft 的代码。它仍然超时。如果我连接到 samcroft 上的 PHP 脚本,该应用程序可以运行并且我可以将数据检索到我的应用程序中,但是如果我用我的 URL 替换他的 URL,它就会超时。我的 PHP 脚本在我的浏览器中运行完美,但在我的 Android 虚拟设备中运行不佳。我是否将 http://127.0.0.1* 添加到我的白名单中没有区别。奇怪的是(?)即使我没有将 http://samcroft.co.uk* 添加到我的白名单中,当我在 samcroft.co.uk 上运行脚本时,该应用程序仍能正常运行并检索数据。我正在 Eclipse 中开发并使用 Cordova 2.6.0。和jquery 1.9.1。我尝试了这些文件的旧版本,结果相同。

使用下面 js 代码中的 URL,它工作得很好,但是当我用 'http://127.0.0.1/landmarks.php' 替换 URL 时,我收到超时错误。我试过将端口号添加到 URL 中,但得到了同样的错误。我也试过使用 'http://localhost/landmarks.php' 出现同样的错误。 (这 2 个 landmark.php 文件是相同的,除了我的连接到本地 MySQL 服务器)。

js代码:

    $.ajax({
url: 'http://samcroft.co.uk/demos/updated-load-data-into-phonegap/landmarks.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$.each(data, function(i,item){
var landmark = '<h1>'+item.name+'</h1>'
+ '<p>'+item.latitude+'<br>'
+ item.longitude+'</p>';

output.append(landmark);
});
},
error: function(xhr, ajaxOptions, thrownError){
alert(ajaxOptions);
}

最佳答案

听起来您正在使用模拟器进行测试。如果是这种情况,localhost127.0.0.1 将不起作用,因为该地址指的是本地机器,在本例中是实际的模拟器本身。相反,您应该使用 10.0.2.2,它就像您的开发机器/托管脚本的服务器的“桥梁”。您可以阅读更多相关信息 here :这可以解释为什么外部 samecroft 网站可以正常工作。

关于android - 使用 ajax 连接到本地服务器时 Cordova 应用程序超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16646964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com