Kohana Framework 3.2 の応答出力に問題があります。
おそらくこれは既知の問題ですが、この件に関して同様の質問や回答を見つけることができませんでした。
コントローラーにリクエストを送信すると、次の形式で応答が返されます。
$this->response->body($aView->render());
ブラウザで応答を受け取りますが、応答の先頭に望ましくない「<」文字が表示されます。
単純なリクエストでは問題ありませんが、json レスポンスを受信するために ajax リクエストを作成しようとすると、コード フローが壊れます。
追加情報: ビューでは、文字セットを「utf-8」に設定するメタ タグを使用しています。
誰でも私を助けることができますか?前もって感謝します
ps: 以前に質問された場合、または Google 検索に表示された場合は申し訳ありません。間違った検索キーワードを使用した可能性があります。
------------------------- 質問の詳細 -------------------- -----------
この動作の簡単な例を示すために、コントローラー、ビュー、および現在求めているものを示す予期しない応答のコードを投稿しています。
まず、ユーザー (作成、更新、削除) とログイン/ログアウト アクションを管理するユーザー コントローラーがあります。たとえば、新しいユーザーを登録するときに、ユーザー名を受け取り、データベースに存在するかどうかを確認し、指定されたユーザー名の存在または非存在を通知する 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) も送信しようとしましたが、結果はほとんど同じです。
答えが明確になることを願っています、答えてくれてありがとう;)