当前位置: 首页 > 面试题库 >

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

梁丘佑运
2023-03-14
问题内容

我具有以下自定义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);
 }

我究竟做错了什么?


问题答案:

删除以下两行:

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

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



 类似资料:
  • 但是,我得到错误。这是我的密码。我怎么能这么做?

  • 问题内容: 我正在尝试实现简单的xhr抽象,并且在尝试设置POST标头时收到此警告。我认为这可能与在单独的js文件中设置标头有关,因为当我在.html文件的标记中设置标头时,效果很好。POST请求工作正常,但是我收到此警告,并且很好奇为什么。我同时针对标头和标头收到此警告,但仅在WebKit浏览器(Chrome 5 beta和Safari 4)中得到此警告。在Firefox中,我没有收到任何警告,

  • 问题内容: 我正在使用Angularjs。当我设置标头时,在Chrome上出现以下错误: 但是,该请求已包含在请求中,并已成功发送到服务器。我似乎已经正确配置了所有内容以允许服务器和客户端上的标头: 对于服务器,我有以下这些: 对于客户,我指定了这些: 为什么会出现此错误? 问题答案: 您从Chrome浏览器中收到该错误,因为根据XHR规范,该方法不应使用禁止的标头名称设置标头。 根据规范: 这些

  • 下面是我的核心站点。xml: 下面是hdfs-site.xml 下面是mapreduce.xml 谢了。

  • 我正在尝试使用Spring Boot RSocket与安全使用JWT令牌。它给我一个拒绝访问的错误,没有其他有用的信息来帮助调试? 拒绝访问 ApplicationErrorException(0x201):app//io.rsocket.exceptions.exceptions.from(exceptions.java:76)处的app//io-rsocket.core.RSocketRequ

  • 问题内容: 我不太确定为什么会收到此错误。这是一个基于express.js的简单API,能够添加和删除帖子。当我触发删除路由器时发生错误。我读到错误通常在有两个回调的情况下发生,但是,我似乎找不到任何双重回调。 这是我的posts.js路由器: 问题答案: 您需要添加“返回”,这样您就不会再次回答。