我正在尝试解决一个奇怪的问题。我总是使用ajax,json等,但不知道为什么下面的简单代码不起作用。
以下是完整的javascript和html代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<title>Testing Ajax</title>
</head>
<body>
<script>
$(function(){
$('h1').click(function(){
alert('clicked');
jQuery.ajax({
url: "teste2.html",
success: function(html){
$('h1').append(html);
},
error : function(){
alert('errou');
}
});
});
});
</script>
<h1>Json Funfando</h1>
</body>
</html>
在同一个文件夹中,我有一个文件teste2.html。无论如何,如果我将url重命名为不存在的东西(例如dasdasdsadsa.html),$ .ajax仍将返回成功,即使使用正确的名称文件,返回的文件始终为空。如果我插入了错误处理,则永远不会调用。
任何人都知道为什么会这样?
PS。:我试着将它放在一个简单的onload函数上,将jQuery.ajax更改为$ .ajax
答案 0 :(得分:3)
您可能必须更改服务器响应的方式,并使其返回不同的HTTP标头,这意味着错误而不是200 OK。
检查服务器返回的内容,并看到它为不存在的页面返回404状态。
答案 1 :(得分:0)
@fabio - 实际的响应标头是什么?我发现jQuery ajax和特定的浏览器实际上并没有对某些响应产生错误。这是我个人熟悉的那个: