Browser Android浏览器无法正确处理跨域ajax请求
我编写了一个HTML/JS应用程序,它可以脱机工作——它放在SD卡上,使用默认的4.1 Android浏览器运行 我正在使用jQuery发出Ajax请求,以便在internet上托管。因为我是从本地文件系统运行它,所以它显然是一个跨域请求。服务器有一种基于标头操作的机制,可以启用此类CD请求。一段令人不安的代码:Browser Android浏览器无法正确处理跨域ajax请求,browser,javascript,Browser,Javascript,我编写了一个HTML/JS应用程序,它可以脱机工作——它放在SD卡上,使用默认的4.1 Android浏览器运行 我正在使用jQuery发出Ajax请求,以便在internet上托管。因为我是从本地文件系统运行它,所以它显然是一个跨域请求。服务器有一种基于标头操作的机制,可以启用此类CD请求。一段令人不安的代码: $.ajax({ type: "POST", crossDomain: true, data : formData, cache: false,
$.ajax({
type: "POST",
crossDomain: true,
data : formData,
cache: false,
url: "http://someurlwhichhandlescrossdomain.com",
success: function(data){
alert("hurrayy!");
},
error: function(xhr, ajaxOptions, thrownError) {
alert("bah :/");
alert(xhr.status);
alert(thrownError);
}
});
问题在于,尽管数据发送正确且服务器正确注册了请求,但始终会执行error函数。xhr.status始终为0,thrownError为空
同样的代码在桌面上的Chrome上也能正常工作(警告“万岁”)
目前,我使用了一种基于navigator.onLine
的解决方案,如果该值为true,我假设数据已正确发送到服务器(因为我不需要从服务器读取任何内容)。但是这个解决方案很糟糕,因为如果连接正常,但服务器不正常,我就无法处理它
有什么想法吗
谢谢,
卡罗尔我不明白为什么这会是重复的。我使用的方法与问题中提到的完全相同,但我的问题是关于android浏览器的。这个问题的公认答案是如何做到这一点,而不是为什么它在android浏览器中不起作用,这正是我要问的。答案作者只是声称它在手机浏览器上不起作用,但答案是从2011年开始的,所以我希望在这方面有所改变。。。。