2

我的项目有 MVC 架构,最近我遇到了一个奇怪的问题。每当我尝试通过在 PHP 中打印一些输出来响应 Ajax 请求时,我都会在输出之前得到 8 个输入字符。我注意到它只是在我想回显时放置这些字符,但我不知道当这些额外输入不在我尝试输出的字符串中时它们是如何出现的。我已经检查了我所有的文件编码,以确保它们不是问题。我什至将响应留空,以检查是否有一些脚本早先打印了某些东西,但事实并非如此,输出为空,没有任何字符。

有什么诀窍吗?

这是我的js:

$.ajax({
    url: _baseRoot + '/admin/request',
    type: 'post',
    data: "req=" + req + args,
    success: function(data)
    {
      var result = data.split(",");

      var m_type = "";

      switch(result[0])
      {
        case "error": m_type = "red"; break;
        case "warning": m_type = "yellow"; break;
        case "success": m_type = "blue"; break;
      }

      showMessage(m_type, result[1]);
    }
  });
4

1 回答 1

1

在没有看到后端的情况下无法真正查明它,但正如大多数 php 项目所进行的那样,这些可能来自各种包含的文件,这些文件并不意味着输出任何内容,而是?>在其末尾有一个和一个换行符。php 解释器只是简单地将所有内容传递给不在<?php ?>标签内的输出。

如果您不想从 php 文件中输出任何内容,则可以删除关闭?>,解释器只需将文件结尾检测为脚本结尾,并确保不会意外空白进入输出之后?>

于 2012-11-16T19:38:50.563 回答