jquery post 返回格式错误

jquery post back wrong format

我尝试用 jQuery 比较两个字符串。然而它不起作用

我的post文件"post.php"回显一个字符串:

echo "true";

我的 jQuery 脚本尝试比较 post 返回数据。但是没用。

$.post( "post.php",
function( data ) {
  if(data=='true'){
  alert();
  }
});

永远不会弹出警报。我将每个文件都保存为 utf-8。不知道我的代码有什么问题。

我快疯了。

将数据类型设置为文本

$.ajax({
  url:"post.php",
  type:"POST",
  dataType:"text",
  success: function(){
    if(data=='true'){
        alert();
    }
  }
});

jQuery 可以对 AJAX 响应的响应类型执行 intelligent guess,因为你只是在做 echo "true";,它很可能推断出 textHTML,所以这不是你的问题(但为了安全起见,你可以将 "text" 添加到你的 post 类型)。


可能是您在结束标记前后的 PHP 中隐藏了空格。如果是这样,那么您的回答将不是真正的 "true",而是可能是“正确的”。在 post.php 中检查此项。或者,您可以 trim() AJAX 响应。


您尚未设置错误处理程序,因此您可能会遗漏一些有用的调试信息。试试这个以获得更多见解:

$.post("post.php", function(data) {
  if(data && data.trim() === "true") {
    alert("Success");  
  } else {
    alert(data);
  }
}, "text")
.fail(function(xhr) {
  alert("Error: " + xhr.statusText);
});