1

Kohana Framework 3.2 的响应输出有问题

也许这是一个已知问题,但我一直无法找到类似的问题或对此事的回应。

每当我向控制器发出请求时,我都会收到以下形式的响应:

$this->response->body($aView->render());

我在浏览器中收到响应,而且,在响应的开头出现了一个不需要的“<”字符。

对于简单的请求来说这不是问题,但是当我尝试发出 ajax 请求以接收 json 响应时,它会破坏代码流。

附加信息:在视图中,我使用元标记将字符集设置为“utf-8”。

谁能帮我?提前致谢

ps:对不起,如果它之前被质疑或出现在谷歌搜索中。也许我使用了错误的搜索关键字。

-------------------------有关问题的更多详细信息-------------------- ------------

为了展示这种行为的一个简单示例,我发布了控制器的代码、视图和当前显示我所问内容的意外响应。

首先,我有一个管理用户(创建、更新、删除)和登录/注销操作的用户控制器。例如,当我注册一个新用户时,我有一个接收用户名的方法,检查数据库中是否存在并返回给浏览器一个 json 回复,通知给定用户名的存在与否。

  <?php defined('SYSPATH') or die('No direct script access.');
  class Controller_User extends Controller {

  //additional code

  public function action_existsusername(){
      $username_candidate = $this->request->param("username",""); 

      $user = ORM::factory("user")->where("username","=",$username_candidate)->find();
      $reply = ($user->id) ? '{"reply":"true"}': '{"reply":"false"}' ;

      $this->response->body($reply);
  }

  //more code

}

但是当我看到回复时,文字如下,

<{"reply":"false"}

我永远不会在响应中添加小于字符的“<”。当我试图从 html 中的服务器获取部分视图时,也会出现这种行为(它总是在该字符的响应之前)。

在上面的示例中,我还尝试发送标头(在本例中为 application/json),但结果几乎相同。

希望它澄清一个答案,谢谢你的回答;)

4

1 回答 1

1

您的一个 php 文件的开头可能有一个额外的 '<' 字符。尝试在文件中搜索“<<?php”或“<<?”。

于 2012-04-19T13:22:41.730 回答