jquery ajax浏览器兼容性问题

南风蛮 2014-09-22 06:13:58
同一段$.ajax,在IE8下没用任何问题,可以提交数据,也自动返回想要的页面。但在火狐和谷歌下能提交数据,但是不能返回想要的页面。求教大神指教啊:
$receiverForm.validate({
rules: {
consignee: "required",
areaId: "required",
address: "required",
zipCode: "required",
phone: "required"
},
submitHandler: function() {
$.ajax({
url: "${base}/member/order/save_receiver.dhtml",
type: "POST",
data: $receiverForm.serialize(),
dataType: "json",
cache: false,
beforeSend: function() {
$newReceiverSubmit.prop("disabled", true);
alert("success 1");
},
success: function(data) {
alert("success 2");
//alert("data.message.type ===" + data.message.type);
if (data.message.type == "success") {
alert("success 3");
$receiverId.val(data.receiver.id);
alert("success 4");
// $("#receiver li").removeClass("selected");

$("input[name=add_radio]").attr("checked",'false');
$receiver.append('<tr class="address_info"><td width="5%" align="center"><input checked="true" type="radio" class="add_radio" receiverId="' + data.receiver.id + '" name="add_radio" /></td><td width="10%"><strong>' + data.receiver.consignee + '</strong> ${message("shop.order.receive")}</td><td width="45%">' + data.receiver.areaName + data.receiver.address + '</td><td width="9%">' + data.receiver.phone + '</td><td width="31%"><span class="address_edit" style="display:none"><a href="">编辑</a>      <a href="">删除</a></span></td></tr>');

// $receiver.append('<li class="selected" receiverId="' + data.receiver.id + '"><div><strong>' + data.receiver.consignee + '<\/strong> ${message("shop.order.receive")}<\/div><div><span>' + data.receiver.areaName + data.receiver.address + '<\/span><\/div><div>' + data.receiver.phone + '<\/div><\/li>');
s $dialogOverlay.hide();
$newReceiver.hide();
[#if setting.isInvoiceEnabled]
if ($.trim($invoiceTitle.val()) == "") {
alert("success 5");
$invoiceTitle.val(data.receiver.consignee);
alert("success 6");
}
[/#if]
} else {
alert("success 7");
$.message(data.message);
}
},
complete: function() {
alert("success 8");
$newReceiverSubmit.prop("disabled", false);
alert("success 9");
}
});
}
});


IE8下成功的情况下可以打印success1 2 3 4 8 9,success5 6 7打不出来是对的。
但是谷歌和火狐一个success都打印不出来,他们又能提交数据成功,我在$.ajax前面加个alert也不打印,让我很怀疑他们是否进了ajax。。。。

不是说jquery ajax没有浏览器兼容问题吗?jquery版本为1.9.1-mini,换过最新版的2.1,没有用。。。
...全文
651 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
南风蛮 2015-09-17
  • 打赏
  • 举报
回复
(⊙o⊙)…居然忘记结贴了
save4me 2014-09-30
  • 打赏
  • 举报
回复
你能用浏览器打开你的网页,然后右键点击查看源码,把页面的代码和js的代码贴出来看看吗?
引用 8 楼 luo19302 的回复:
好吧,看来各位跟我用的环境都不一样。我这个用的是freemarker模板,不是jsp写的。浏览器没有报错,IE、火狐和谷歌都没有报错,就是因为不知道哪里错了,所以才是最头痛的
南风蛮 2014-09-30
  • 打赏
  • 举报
回复
引用 7 楼 save4me 的回复:
你上面的代码是客户端执行后的代码,还是你服务器端的源代码? 首先,代码的第33行的第一个字符s是不是打字手误? 如果是客户端的代码,如1楼所说,第35和41行不是js代码,所以会报错,如下图 如果你的代码是服务器端的,请把编译后的客户端代码贴出来看一下,方便检查原因。不同浏览器的容错纠错可能是不一样的,所以一个浏览器没有报错,不等于别的浏览不会。
引用 6 楼 luo19302 的回复:
没有报错。。。IE下可以传数据,也可以跳转到想要的页面,火狐和谷歌不行,问题就是这个
好吧,看来各位跟我用的环境都不一样。我这个用的是freemarker模板,不是jsp写的。浏览器没有报错,IE、火狐和谷歌都没有报错,就是因为不知道哪里错了,所以才是最头痛的
南风蛮 2014-09-30
  • 打赏
  • 举报
回复
算了,这个问题就这么结了吧
南风蛮 2014-09-30
  • 打赏
  • 举报
回复
引用 9 楼 save4me 的回复:
你能用浏览器打开你的网页,然后右键点击查看源码,把页面的代码和js的代码贴出来看看吗?
引用 8 楼 luo19302 的回复:
好吧,看来各位跟我用的环境都不一样。我这个用的是freemarker模板,不是jsp写的。浏览器没有报错,IE、火狐和谷歌都没有报错,就是因为不知道哪里错了,所以才是最头痛的
这个恐怕是不行的
南风蛮 2014-09-28
  • 打赏
  • 举报
回复
引用 5 楼 save4me 的回复:
在浏览器中按F12打开开发者工具,在控制台标签页看看有没有错我 [quote=引用 4 楼 luo19302 的回复:] [quote=引用 2 楼 qq_16951411 的回复:] 可能是你浏览器阻止了弹出吧。你检查下浏览器设置看看
没有阻止弹出,我的问题是ajax,不是alert弹出问题[/quote][/quote] 没有报错。。。IE下可以传数据,也可以跳转到想要的页面,火狐和谷歌不行,问题就是这个
save4me 2014-09-28
  • 打赏
  • 举报
回复
在浏览器中按F12打开开发者工具,在控制台标签页看看有没有错我
引用 4 楼 luo19302 的回复:
[quote=引用 2 楼 qq_16951411 的回复:] 可能是你浏览器阻止了弹出吧。你检查下浏览器设置看看
没有阻止弹出,我的问题是ajax,不是alert弹出问题[/quote]
南风蛮 2014-09-28
  • 打赏
  • 举报
回复
引用 2 楼 qq_16951411 的回复:
可能是你浏览器阻止了弹出吧。你检查下浏览器设置看看
没有阻止弹出,我的问题是ajax,不是alert弹出问题
南风蛮 2014-09-28
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
[#if setting.isInvoiceEnabled] if ($.trim($invoiceTitle.val()) == "") { alert("success 5"); $invoiceTitle.val(data.receiver.consignee); alert("success 6"); } [/#if] 红色的不是js语句,自己检查最终客户端的代码对不对 还有你自己是不是点击过阻止弹出对话框什么的东东了,多次alert会在弹出的框下增加一个阻止继续弹出的复选框,你是不勾过了,勾了要重新启动浏览器才行
红色的那是freemarker模块语言。没有勾选过啊,别的alert弹的好好的
save4me 2014-09-28
  • 打赏
  • 举报
回复
你上面的代码是客户端执行后的代码,还是你服务器端的源代码?
首先,代码的第33行的第一个字符s是不是打字手误?
如果是客户端的代码,如1楼所说,第35和41行不是js代码,所以会报错,如下图

如果你的代码是服务器端的,请把编译后的客户端代码贴出来看一下,方便检查原因。不同浏览器的容错纠错可能是不一样的,所以一个浏览器没有报错,不等于别的浏览不会。
引用 6 楼 luo19302 的回复:
没有报错。。。IE下可以传数据,也可以跳转到想要的页面,火狐和谷歌不行,问题就是这个
Go 旅城通票 2014-09-23
  • 打赏
  • 举报
回复
[#if setting.isInvoiceEnabled] if ($.trim($invoiceTitle.val()) == "") { alert("success 5"); $invoiceTitle.val(data.receiver.consignee); alert("success 6"); } [/#if] 红色的不是js语句,自己检查最终客户端的代码对不对 还有你自己是不是点击过阻止弹出对话框什么的东东了,多次alert会在弹出的框下增加一个阻止继续弹出的复选框,你是不勾过了,勾了要重新启动浏览器才行
qq_16951411 2014-09-23
  • 打赏
  • 举报
回复
可能是你浏览器阻止了弹出吧。你检查下浏览器设置看看

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧