1. ホーム
  2. javascript

[解決済み] AJAXポストエラー: 安全でないヘッダー "Connection" の設定を拒否されました。

2022-02-02 23:22:22

質問内容

以下のカスタムajax関数があり、データをPHPファイルにポストバックします。データのポストが行われるたびに、次の2つのエラーが発生します。

安全でないヘッダ "Content-length" の設定を拒否されました。
安全でないヘッダー "Connection" の設定を拒否されました。

コード :

function passposturl(url1, params, obj)
{
    //url1 = url1+"&sid="+Math.random();
    xmlHttp = get_xmlhttp_obj();
    xmlHttp.loadflag = obj;
    xmlHttp.open("POST", url1, true);
    //alert(url1);
    //alert(params);
    //alert(obj);
    //alert(params.length);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", params.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.onreadystatechange = function ()
    {
        stateChanged(xmlHttp);
    };
    xmlHttp.send(params);
 }

何が間違っているのでしょうか?

どうすればいいですか?

この2行を削除してください。

xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");

XMLHttpRequestはこれらのヘッダを設定することができず、ブラウザによって自動的に設定されます。なぜなら、これらのヘッダを操作することで、サーバーを騙して、通常のセキュリティチェックを通らない、同じ接続による2回目のリクエストを受け入れることができるかもしれないからです - これはブラウザのセキュリティ脆弱性となります。