반응형
AJAX 게시 오류: 안전하지 않은 헤더 "연결" 설정을 거부했습니다.
PHP 파일에 데이터를 다시 게시하는 다음과 같은 커스텀 에이잭스 기능이 있습니다.데이터 투고가 발생할 때마다 다음 두 가지 오류가 발생합니다.
안전하지 않은 헤더 "Content-length" 설정을 거부했습니다.
안전하지 않은 헤더 "연결" 설정을 거부했습니다.
코드:
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는 이러한 헤더를 설정할 수 없습니다.이 헤더는 브라우저에서 자동으로 설정됩니다.그 이유는 이러한 헤더를 조작함으로써 서버가 동일한 접속을 통해 두 번째 요청을 받아들이도록 속일 수 있기 때문입니다.이것은 통상적인 보안 검사를 거치지 않는 것입니다.이것은 브라우저의 보안 취약성입니다.
W3C XMLHttpRequest Level 1 스펙 섹션 4.6.2는 "사용자 에이전트에 의해 제어되며 setRequest에서 설정할 수 없는" 헤더를 나열합니다.Header() 메서드.Connection과 Content-length가 모두 목록에 있습니다.
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Cookie2
Date
DNT
Expect
Host
Keep-Alive
Origin
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via
언급URL : https://stackoverflow.com/questions/7210507/ajax-post-error-refused-to-set-unsafe-header-connection
반응형
'programing' 카테고리의 다른 글
woocommerce 속성값 목록 가져오기 (0) | 2023.02.25 |
---|---|
TNS-12505: TNS: 청취자가 현재 Connect Descriptor에 지정된SID를 인식하지 않음 (0) | 2023.02.25 |
ngModel의 차이점은 무엇입니까?$modelValue 및 ngModel.$viewValue 값 (0) | 2023.02.25 |
angular $q, for-loop 내 및 후에 여러 약속을 연결하는 방법 (0) | 2023.02.25 |
React.js를 사용하여 클래스를 추가하려면 어떻게 해야 합니까? (0) | 2023.02.25 |