【问题标题】:jquery post back wrong formatjquery 回发格式错误
【发布时间】:2015-06-05 15:46:30
【问题描述】:

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

我的帖子文件“post.php”回显了一个字符串:

echo "true";

我的 jQuery 脚本尝试比较回发数据。但它不起作用。

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

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

我快疯了。

【问题讨论】:

  • 将数据类型设置为文本
  • $.post( "post.php", function( data ) { alert(data); }); 报告什么?

标签: php jquery string compare postback


【解决方案1】:

jQuery 可以对 AJAX 响应的响应类型执行intelligent guess,并且由于您只是在执行echo "true";,因此它很可能会推断出textHTML,所以这不是您的问题(但是为了安全起见,您可以在帖子类型中添加“文本”)。


可能是您在 PHP 中在结束标记之前或之后隐藏了空格。如果是这样,那么您的回答将不是真正的“真实”,而可能是“真实的”。在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);
});

【讨论】:

    【解决方案2】:

    将数据类型设置为文本

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 2011-09-30
      • 2022-01-21
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多