【发布时间】:2010-10-09 07:08:58
【问题描述】:
这可能有点搞笑,一开始甚至不知道如何放置标题。可能是因为工作时间过长或者我做错了什么。
我有一个文件,比如comment.php,其中包含类似于:
var params = $('form#myform').serialize();
$.get("/ajax/file.php?"+params, function(data){
if (data == 'error') {
$('#message').html('Error');
} else if (data == 'success') {
$('#message').html('Success');
}
});
我用 firebug 进行了检查,一切正常,没有 JS 错误,正在调用文件并返回“错误”或“成功”,但仍然在 ajax 调用的主体中 data 与服务器响应不匹配。然后我改变了
if (data == 'error') {
$('#message').html('Error');
} else if (data == 'success') {
$('#message').html('Success');
}
与
if (trim(data) == 'error') {
$('#message').html('Error');
} else if (data == 'success') {
$('#message').html('Success');
}
其中 trim() 是我编写的一个函数,用于删除字符串之前或之后的所有空格。我还尝试使用被称为回显数字的文件并使用 jQuery 进行检查,例如:
if (data == 1) {
$('#message').html('Error');
} else if (data == 'success') {
$('#message').html('Success');
}
没有结果。如果我只 alert(data) 一切看起来都很好。两个文件都在同一个域中。我的代码与示例中的完全一样,只是我有更多 if/else 条件,其中一个应该总是匹配(如果我查看 firebug,它会匹配)。我也尝试使用没有结果的 switch 语句。
我使用这种方法已经有一段时间了,从来没有遇到过任何问题。想法?
【问题讨论】:
-
我会尝试 alert(typeof data) 来查看类型(并可能指定 jquery dataType 参数)。另外,请注意字符的大小写(大写/小写)。
-
抱歉,刚刚看到这个,这里是新的 :) 感谢您的帮助,会记住这一点!