jQuery ajax调用async:false vs async:true

时间:2010-08-19 14:47:13

标签: jquery

我正在尝试使用jQuery ajax函数异步加载html。但我出于某种原因,它只有在async为false时才有效。我正在使用来自jQuery网站的代码示例,我不明白为什么它不起作用? 我正在使用Firefox浏览器,我在IE 8中试过它,async:true在那里工作。

警报显示数据为空:

$.ajax({
                url: 'test.html',
                async: true,
                success: function (data) { alert(data); }
            });

数据以test.html的内容返回:

$.ajax({
                url: 'test.html',
                async: false,
                success: function (data) { alert(data); }
            });

奇怪的是,这使它有效:

var response =    $.ajax({
                url: 'test.html',
                async: true,
                success: function (data) { alert(data); }
            });

            alert(response);

这里发生了什么?

1 个答案:

答案 0 :(得分:7)

好的,想通了:ajax调用是按下按钮点击,但是该按钮正在提交表单,所以整个页面正在重新加载。添加“return false;”单击事件以防止按钮提交表单产生差异。