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 に答える