javascript 在Chrome和Firefox中 $.ajax 在$("a").click()方法下不执行,但是在IE8 效果正常?

javascript 在Chrome和Firefox中 $.ajax 在$("a").click()方法下不执行,但是在IE8 中效果正常经过测试,在标签中,有一个href 中有一个连接,跳转到其他页面,但在此之前需要向后台发送一个ajax请求,已经确认ajax格式没有错误,而且在IE8中运行正常,但是在Chrome和Firefox中 ajax无法向后台传送数据??有没有 处理过这方面内容的高手?指点一二,有悬赏
$(function () {
$("a").click(function () {
$.ajax({
url: "/Admin/......",

type: "post",
data: { location: vLocation, destination:
vlink },
datatype: "json",

success: function(data) { ....}
});

//但是alert不弹出...
alert("提示执行到此处了!");

//以上代码在IE8 能走得通,顺利跳转到设定的URL但是,Firefox和Chrome不行....

  您好!很高兴为您答疑!

  火狐下建议安装Firebug检查页面代码,错误部分会有提示,不同的浏览器,需要设置兼容属性,具体的方法您可以参考:
  http://www.w3school.com.cn
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-28

有一个名词叫做 浏览器的默认行为, 

例如: 超链接的默认行为是 点击它,会执行页面跳转; <input type="submit" />的默认行为是点击它, 会提交表单, 


你所遇到的问题就是超链接的click事件与默认行为同时发生的情况. 在发送ajax请求时, 页面执行跳转了.


按照你的要求, 应该先调用 ajax, 成功后执行跳转, 那行,代码可以类似如下编写

$("a").click(function(){
    var href = this.href;
    $.ajax({
        url:'url',
        success:function(data){
            if(data数据验证通过){
                //跳转
                location.href= href;
            }
        }
    };
    
    //取消超链接的默认行为
    return false;
});

至于在IE8中可以正常运行, 是因为ie8不完全遵循 W3C标准, 把它认为是个SB就行了

追问

$.ajax 通不过啊,后台 URL 那边设置断点了,根本没过来,data都获取不到怎么执行if()呀??

追答

你需要定位到出错的位置,
是JavaScript脚本出错了,还是Ajax出错了?
JavaScript代码有没有执行到$.ajax的地方?

如果到了$.ajax, 这样的话, 检查ajax的 url, 参数

追问

我在 ajax前加了alter, 可以弹,在后面就不行,复制URL访问没有问题,......还有就是同样的代码,在IE8 通过了...

追答

可以确定,在执行 $.ajax的时候, 产生的语法错误

把ajax的参数改成如下试一下

$.ajax({
    url: "/Admin/......",
    type: "post",
    //将vLocation vlink 变成字符串, 确定是否由这两个变量引起的语法错误
    data: { location: "vLocation", destination: "vlink" },
    //t大写
    dataType: "json",                    
    success: function(data) { ....}

本回答被提问者采纳
第2个回答  2014-04-01
您好!感谢您对火狐产品的支持!
浏览器不兼容,如果你的网页没有用到比较特殊的代码,那就是你的css写的不严谨 是Javascript脚本不兼容的问题 DIV+CSS 布局的话.火狐浏览器使用的是Gecko内核,是一款开源、安全的浏览器,拥有非常强大的扩展功能,可以根据自己的需求定制浏览体验。您可以在火狐社区了解更多内容。
希望我的回答对您有所帮助和得到您的采纳。
第3个回答  2014-03-28
贴代码出来
第4个回答  2014-03-28
不知道你在说什么 你既然用到a标签 你就是点击之后跳转的 请问你的ajax写在哪里在?

最好请贴出代码追问

其实 什么时候跳转无所谓,我只是希望 ajax能够 执行,$.ajax(function(){.....}); 在javascript中用的jQuery写的...有过jQuery经验的应该经历过...连题目都看不懂的就路过吧....先谢谢了...

相似回答