以下代码适用于Safari和Chrome中的iPad和iPhone(4,5)。相反,在Android设备和桌面浏览器中,ajax调用不起作用(直接运行onError函数)。
当我将绝对URL换成相对的URL时,这两组的成功/失败结果会相反。
如何解决此问题(我正在运行jquerymobile 1.3.0 beta)?感谢/布鲁斯
$(document).ready(function() {
$("#submit").click(function(){
var formData = $("#loginf").serialize();
$.ajax({
type: "POST",
url: "http://mydomain.org/m2/scripts/site/bpg_process.asp?id=lg",
cache: false,
data: formData,
dataType: 'json',
success: onSuccess,
error: onError
});
return false;
});
});
答案 0 :(得分:0)
您知道不允许跨域Ajax调用吗? 您的问题可能与您发出请求的 的网址相关联,而不是与您正在测试的浏览器相关联。 请阅读此内容以获取更多详细信息:http://en.wikipedia.org/wiki/Same_origin_policy
这里重要的是该政策排除了不同的子域名。 防爆。如果您从http://www.mydomain.org向http://mydomain.org 发送请求,则会失败,反之亦然。
我在您的情况下通常使用完整的网址" /m2/scripts/site/bpg_process.asp?id=lg
"没有协议和主机,但有起始" /"所以它可以从URL树的任何地方引用。
什么是"相对网址"你正在使用的那个"不起作用"?
答案 1 :(得分:0)
就像darma所提到的那样。 “不允许跨域Ajax调用”。
改为使用绝对“本地”路径。
链接开头的斜杠'/'表示文档根目录。
如果您需要引用外部域,请使用ajax调用为您调用外部页面的本地.asp文档,并在json中返回所需的数据。
我不确定它在asp中是什么,但在php中,curl有效。