注意:这涉及到previous question。jQuery对Java/Wicket服务器的AJAX调用在IE中无响应(6/7/8)
我有一个Wicket页面,它有一些复杂的客户端交互,我决定使用jQuery代替Wicket(长篇讨论,我知道)。基本上我只是建立一个JSON对象,通过AJAX提交它,并在完成时执行一些操作。该调用在Firefox中正常工作,但不适用于任何版本的IE。我已经验证过没有多余的逗号。这里是代码:
var lookup = {
'name': name,
'description': description,
'items': [{
'name': itemName,
'value': itemValue
}]
};
$.ajax({
type: 'post',
url: '${callbackURL}', // This file is parsed by Wicket and receives a dynamic callback URL here. This is not jQuery!
cache: false,
data: {'lookup': JSON.stringify(lookup)},
contentType: 'application/json',
complete: function() {
alert('This never gets called in IE!')
}
});
有什么建议吗?谢谢!
更新:看来我的问题是由于IE缓存资源。我已经在我的HTML文件中放置了no-cache代码,但似乎这个页面仍然被缓存(并且通过扩展名,它引用的JS),或者带有我的jQuery代码的JS文件被缓存旧的回调网址,以便服务器不回应,因为该URL没有任何内容了。当我删除漂亮的URL时,一切正常(因为Wicket每次生成URL都是唯一的)。尽管如此,即使没有服务器响应,也不应该调用complete
函数吗?
它会帮助很多张贴问题的代码。你确定HTTP请求是否确实发生?你有没有通过IE8调试程序? – Pointy 2010-07-12 15:59:37
对不起,最初没有发布代码。我不得不在发布我的问题的过程中离开,只是想把它放在那里。 正在进行AJAX请求(我正在从请求中成功保存数据),但回调从未得到执行。没有任何异常(我将这个调用包装在try/catch中,并且永远不会捕获),并且我在$中添加了'error:function(request,status,err){...}' .ajax()调用并验证没有错误返回。 – Jared 2010-07-12 17:45:54