小编典典

AJAX发布错误:拒绝设置不安全的标头“连接”

ajax

我具有以下自定义ajax函数,该函数将数据发布回PHP文件。每当发生数据发布时,我都会遇到以下两个错误:

拒绝设置不安全标头“ 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);
 }

我究竟做错了什么?


阅读 240

收藏
2020-07-26

共1个答案

小编典典

删除以下两行:

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

不允许XMLHttpRequest设置这些标头,它们是由浏览器自动设置的。原因是通过处理这些标头,您可能能够欺骗服务器通过同一连接接受第二个请求,而该请求不会通过常规的安全检查-
这将是浏览器中的一个安全漏洞。

2020-07-26