2011-02-24 44 views
1

我使用Phonegap在Android上开发了一个示例应用程序。
单击按钮时,向服务器发出Ajax请求(http://192.168.0.199:8080/test.php)。
The test.php只是回声hello world
我正在使用Jquery 1.5进行Ajax调用。在Android上发出Ajax请求返回无传输错误

下面是Ajax调用的代码:每到这个函数被调用时

$.ajax({ 
url:"http://192.168.0.199:8080/test.php", 
beforeSend: function(x) { 
alert("The URL "+url); 
}, 
type:'POST', 
crossDomain: true, 
success:function(data) { 
    alert(data); 
}, 
error:function(XMLHttpRequest,textStatus, errorThrown) {  
alert("Error status :"+textStatus); 
alert("Error type :"+errorThrown); 
alert("Error message :"+XMLHttpRequest.responseXML); 
} 
});  

但是,它抛出一个错误:

Error Type: No Transport
Error Message: undefined
Error Status: error

注意:我在Manifest文件中添加了INTERNET权限。我使用运行Android 1.6

感谢G1设备提前

回答

1

貌似你试图让本地网络内客户端的调用。
尝试验证您是否有权访问该本地网络。

+1

嗨艾瑞克,我能够访问浏览器上的网址......绝对不是网络问题。 – bitblt 2011-02-24 13:33:55

+1

它运行良好** ** Android 2.2上的**三星Galaxy S ** **也许这是一个版本问题... G1运行在Android 1.6上** ** – bitblt 2011-02-25 09:01:49

1

从jQuery 1.5开始,新的AJAX/XHR实现正在使用中。而且Android 1.5/1.6并没有说它支持CORS(跨域调用)。因此,一个办法“修复”这是通知的jQuery它确实支持CORS:

jQuery.support.cors = true; 

我不能在2.1及更高版本重现该问题。所以我期望这个版本的XHR实现确实说它支持cors。