3

エンコーディングgzip(iis7)を使用したAjax送信リクエストが機能していません。送信リクエストのコードは、コードのどこが悪いのかを教えてくれます。

前もって感謝します

function sendRequest(url, callback, postData)
{
   var req = createXMLHTTPObject();
   if (!req) {
      return;
   }

   var method = (postData) ? "POST" : "GET";
   req.open(method, "xml/" + url, true);
   req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');

   if (postData) {
      req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      req.setRequestHeader("Content-Encoding", "gzip");

   }

   req.onreadystatechange = function() {

   }

   req.send(postData);
}
4

3 に答える 3

5

セキュリティを考慮して、ブラウザーは「Content-Encoding」を含む一部のヘッダーをオーバーライドすることを許可していません。

于 2012-04-27T06:57:06.137 に答える
1

問題はヘッダーではなく、圧縮に関連しているようです。

postData を圧縮していないようです。

postData が既に圧縮されている場合は、手動で content-encoding を設定する必要はありません。

そうでない場合は、ブラウザに転送エンコーディングをサーバーとネゴシエートさせます(これはプロトコルの一部であり、自動的に行われ、サーバーはそれを受け入れるかどうかを言いますが、それはめったにないと思います)または(本当に必要な場合)に)自分でエンコードします。この SO の質問は、ブラウザ側を圧縮するライブラリを示しています: Gzip の JavaScript 実装

于 2012-04-27T07:12:35.767 に答える