来自 JQuery .ajax() 调用的空白响应消息长度为 13 个字符


Blank response message from JQuery .ajax() call is 13 characters in length?

我正在使用JQUERY .ajax()使用PHP将序列化的表单数据发送到MySQL。如果处理数据时出现问题,被调用的后端 PHP 将返回一条消息。然后,我的 Javascript 函数在决定下一步做什么之前检查返回的消息。如果消息长度为"0",则帖子成功,可以继续发布。如果消息长度>"0",则表单处理中一定发生了错误,并且它捕获在那里进行处理。但是,在测试时,我发现成功处理我的表单数据后,返回了大小为 13 的消息,即使该消息本身为空。

我使用的javascript函数如下。我已经修改了它以测试超过 13 个字符的消息长度,现在工作正常。我只是好奇为什么空白回复的长度为 13 个字符。忽略复杂的 .load() 语句,它们只是根据是否检测到错误消息将用户返回到不同的页面。

$("button#update").click(function() {
    var cat = $("select#cat_select").val();
    var dataString = $("form#project_update").serialize();
      $.ajax({
      type: "POST",
      url: "process.php",
      data: dataString,
      dataType: 'text', 
      success: function( msg ) {
        console.log('msg is ' + msg);
        length = msg.length;
        console.log('length is ' + length);
        if (length > 13) { // no idea why a blank msg has a length of 13!!
          alert(msg);
          $("#main").load('?app=$app&func=$func&sub=ajax&ajaxSub=edit_project&cat=' + cat + '&proj_id=' + $proj_id).fadeIn('fast');
        }
        else {
          $("#main").load('?app=$app&func=$func&sub=ajax&ajaxSub=project_detail&cat=' + cat + '&proj_id=' + $proj_id).fadeIn('fast');
        }
      }
    });
    return false;
}); 

而不是

length = msg.length;

尝试使用

length = msg.replace(/'s/g,'').length

注意

但是您应该确保<?php?>标签中没有空格或换行符,如果您删除它们会更好。

检查 <?php?> 标记之外的硬编码空格。我想脚本通过 ajax 调用自己,对吧?