Ошибка поста AJAX: отказался устанавливать небезопасный заголовок «Соединение» - PullRequest
90 голосов
/ 27 августа 2011

У меня есть следующая пользовательская функция ajax, которая отправляет данные обратно в файл PHP. Каждый раз, когда происходит передача данных, я получаю следующие две ошибки:

Отказался устанавливать небезопасный заголовок «Длина содержимого» * ​​1005 * Отказался устанавливать небезопасный заголовок «Соединение»

Код:

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);
 }

Что я делаю не так?

1 Ответ

149 голосов
/ 27 августа 2011

Удалите эти две строки:

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

XMLHttpRequest не разрешает устанавливать эти заголовки, они устанавливаются браузером автоматически. Причина в том, что, манипулируя этими заголовками, вы могли бы заставить сервер принять второй запрос через то же соединение, который не прошел бы обычные проверки безопасности - это было бы уязвимостью безопасности в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...