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

标签 php jquery

我正在使用 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 - JQuery .ajax() 调用的空白响应消息长度为 13 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029377/

相关文章:

php - 单元测试和外部资源

php - Laravel 以另一个用户身份登录

javascript - 禁止加载 HTML 5 视频

等待 GET 完成时的 Javascript setInterval

javascript - 拖放错误

jquery - 使用 Servlet 在 IE8 上下载多个文件

php - Wordpress 要求提供 FTP 凭据以进行升级

php - 警告 : mcrypt_encrypt(): Size of key is too large for this algorithm

javascript - 使用 php 从 html 执行脚本

javascript - 如何停止 Canvas 中的动画?