Javascript AJAX回调未正确处理数据

Javascript AJAX回调未正确处理数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,我用jQuery中的.post()函数调用了一个PHP脚本。如果一切顺利,它将输出“WIN”,否则它将输出任何数据库错误或它得到的任何其他结果 $.post("myscript.php", {key: "value"}, function(data) { if(data=="WIN") { // the stuff that I want it to do that it won't do } else { alert(data); } }); 然而,

我用jQuery中的
.post()
函数调用了一个PHP脚本。如果一切顺利,它将输出“WIN”,否则它将输出任何数据库错误或它得到的任何其他结果

$.post("myscript.php", {key: "value"}, function(data) {
   if(data=="WIN") {
      // the stuff that I want it to do that it won't do
   } else {
      alert(data);
   }
});

然而,当它运行时,我会在JS警报中获得“胜利”,而我希望它做的事情不会发生。由于“WIN”出现在警报中,PHP脚本显然输出了我所期望的内容。我甚至确保将PHP脚本的
内容类型设置为
text/plain
,那么为什么
data==“WIN”
。为什么我的胜利失败了?

你检查过空格了吗?
echo“WIN”
之前或之后的任何空格都会影响输出,此外,请检查
之前和之后的空格。您很可能正试图直接从“data”访问返回的数据。试一试

 alert(data.d);
我想您会发现返回的数据位于属性中。如果我没记错的话,那家酒店的名字是“d”。使用FireFox插件查看返回的数据。这对AJAX调试非常有帮助


祝你好运

嗯,说得好。我想我已经去掉了“WIN”之前的所有空格,但是我的IDE似乎每次保存时都会在文件末尾添加一个新行。也许我应该过滤掉javascript中的空白。
data.replace(/^\s+\s+$/g,')修剪得非常好。哦,没关系,我刚刚意识到jQuery有一个
.trim()
函数。我会使用它。你也可以避免用
?>
关闭php文件,让它保持打开状态,工作正常^^^如果返回的数据是纯文本,那么
数据
应该是我所理解的文件的确切输出。我认为整个属性主要适用于JSON数据。