我具有以下自定义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设置这些标头,它们是由浏览器自动设置的。原因是通过处理这些标头,您可能能够欺骗服务器通过同一连接接受第二个请求,而该请求不会通过常规的安全检查- 这将是浏览器中的一个安全漏洞。