Я работаю над веб-сайтом, и у меня есть проблема прямо здесь. На странице, над которой я работаю, пользователь указывает ip-адрес и порты, которые он хочет найти. Это делается с помощью ajax (сторона пользователя) и php (сторона сервера). Ajax отправляет ip и порт (по одному) в php файл, а он возвращает результат порта. Цель состоит в том, чтобы пользователь увидел, какой порт тестируется (в элементе div) в данный момент, и вот где проблема. Он хорошо запускается/работает, он тестирует все порты, которые хочет пользователь, но в период тестирования он не показывает ни одного порта, просто показывает конечный порт (после того, как все предыдущие порты были протестированы) и результат портов (если какой-то порт был результат), который появляется в отдельном элементе div. Это просто отлично работает в Firefox, в других браузерах происходит то, что я только что объяснил. Консоль Google Chrome говорит: «Отказано в установке небезопасного заголовка «Длина контента» и «Отказано в установке небезопасного заголовка» Соединение». Я искал эту проблему в течение нескольких дней, и я нашел так много вещей, и я пробовал их, но ни один из них не решил проблему.
Вот мой код.
jquery.js
function HttpRequest(endereco, portainicio)
{
var xmlhttp;
var params = "endereco="+endereco+"&"+"porta="+portainicio;
if (window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
{
xmlhttp = new XMLHttpRequest();
}
else // IE6, IE5
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", "/firewall/ajax", false);
//alert(params);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
return xmlhttp.responseText;
}
function ajaxfirewall()
{
(...)
var resposta;
$("p.ip").append("<span class='end'> "+endereco+"</span>");
for (portainicio; portainicio <= portafinal; portainicio++)
{
resposta = HttpRequest(endereco, portainicio);
$("p.porta").append(" <span class='tporta'>"+ resposta+"</span><br>");
}
return false;
}
Другое дело, что это действительно странно. Вы видите те alert(params);
, которые закомментированы в функции HttpRequest
? Если я оставлю его без комментариев, он отобразит тестируемый порт, но покажет предупреждение, а мне это не нужно.