【发布时间】:2014-07-07 12:33:24
【问题描述】:
我正在开发一个网站,但我在这里遇到了问题。在我正在工作的页面上,用户输入了一个 IP 地址和他想要搜索的端口。这是使用 ajax(用户端)和 php(服务器端)制作的。 Ajax 将 ip 和端口(一一)发送到 php 文件,他返回端口的结果。目标是用户看到当前正在测试的端口是什么(在 div 元素中),这就是问题所在。他运行/工作良好,他测试了用户想要的所有端口,但在测试期间他没有显示端口,只显示最终端口(在测试所有先前的端口之后)和端口的结果(如果某些端口有一个结果),它出现在一个不同的 div 元素中。这在 Firefox 中完美运行,在其他浏览器中发生了我刚刚解释的情况。谷歌浏览器控制台说:拒绝设置不安全的标头“内容长度”和拒绝设置不安全的标头“连接”。这几天我一直在寻找这个问题,我发现了很多东西并尝试了它们,但没有一个能解决问题。
这是我的代码。
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;
}
另一件事真的很奇怪。你看到HttpRequest函数中注释的那些alert(params);了吗?如果我不加注释,它会显示正在测试的端口,但它会显示警报,我不希望这样。
【问题讨论】:
标签: ajax connection content-length