XMLHttpRequest.send에 늘을 전달하는 이유는 무엇입니까?
왜?send
흔히 말하는
xhr.send(null)
대신
xhr.send()
?
W3, MDN 및 MSDN은 모두 옵션임을 나타냅니다.또한 ActiveX 컨트롤에는 다음과 같은 인수가 필요하지 않은 것 같습니다.
hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP.6.0");
SUCCEEDED(hr) ? 0 : throw hr;
hr=pIXMLHTTPRequest->open("GET", "http://localhost/books.xml ", false);
SUCCEEDED(hr) ? 0 : throw hr;
hr=pIXMLHTTPRequest->send(); // <-- this line
SUCCEEDED(hr) ? 0 : throw hr;
의 관행send(null)
구글 지도에서는 적어도 2005년까지 거슬러 올라가지만, 더 자세히 설명하면 다음과 같은 설명이 없습니다.
Y.asynchronousTransform = function (qc, vb, kc, Nc, Ba) {
if (m.type == 3) return;
var cc = Y.getCached(kc);
if (cc) {
cc.transformToHTML(qc, vb);
if (Nc) Nc();
return
}
var yc = qa.create(Ba);
var sa = Xd.create();
nd('<a href="' + kc.xmlEscape() + '">' + kc.xmlEscape() + "</a>", 0);
sa.open("GET", kc, true);
sa.onreadystatechange = function () {
if (sa.readyState == 4) {
if (yc.isValid()) {
try {
var Db = sa.responseXML;
var cc = Y.create(Db);
Y.cache(kc, cc);
cc.transformToHTML(qc, vb);
if (Nc) Nc()
} catch (b) {}
}
}
};
sa.send(null)
}
XMLHttpRequest의 오래된 사양을 살펴보면 W3C에서는 파라미터가 옵션일 필요가 없었던 것 같습니다.그 때문에, 「만일의 경우」라고 하는 명시적인 늘치를 제공할 가능성이 있습니다.
('SHOUT support the send' 검색) http://web.archive.org/web/20060409155734/http : //www.w3.org/TR/XMLHttpRequest/
또 다른 그럴듯한 이유는 러시아어 페이지 번역입니다.여기서 볼 수 있습니다.긴 Google 번역 링크('GET-Request for Version without ActiveX' 검색)
ActiveX 를 사용하지 않고 버전의 GET-Request 를 송신하는 경우는, null 을 지정할 필요가 있습니다.그렇지 않으면 파라미터를 지정할 수 없습니다.GET이 항상 null로 지정되어 있는 경우 실패하지 않습니다.
이것이 사실인지 아닌지 알 수 없지만 GET 매개 변수가 본문에 포함되어 있다면 데이터 값이 '정의되지 않은' 경우 본문이 생성되지 않았을 수 있습니다.
불행히도, 나는 내 검색에서 더 결정적인 것을 찾을 수 없었다.
추가하지 않음null
이전 버전의 Firefox에서는 예외가 발생합니다.
이 동작은 2002년부터 존재했으며 Firefox 3(2008)을 통해 존재했습니다.
따라서 HTTP 요청 방식이 GET인 경우 HTTP 클라이언트는 데이터를 요청 URL(이른바 쿼리 문자열)에 추가하는 것만으로 서버에 데이터를 전송합니다.이는 요청 본문이 비어있음을 의미하므로 이 인수 값을 다음과 같이 설정해야 합니다.null
.
단, HTTP 요청 방식이 POST인 경우 요청 데이터는 요청 본문에 배치되며, 요청 본문은 최종적으로 를 통해 서버로 전송됩니다.send
기능.
건배!
XMLHttpRequest.send() 메서드가 요청을 전송합니다.요구가 비동기일 경우(기본값), 이 메서드는 요청이 전송되는 즉시 반환됩니다.요청이 동기화된 경우 이 메서드는 응답이 도착할 때까지 반환되지 않습니다.send()는 요청 본문에 대한 선택적 인수를 받아들입니다.요청 방식이 GET 또는 HEAD일 경우 인수는 무시되고 요청 본문은 null로 설정됩니다.
언급URL : https://stackoverflow.com/questions/15123839/why-do-we-pass-null-to-xmlhttprequest-send
'programing' 카테고리의 다른 글
WooCommerce 제품 설명에 사용자 지정 콘텐츠 추가 (0) | 2023.03.21 |
---|---|
MongoDB가 500만 개 이상의 레코드에 대해 성능을 조회합니다. (0) | 2023.03.21 |
Oracle SQL Developer를 통한 비밀번호 변경 (0) | 2023.03.21 |
Go를 사용하여 JSON을 예쁘게 인쇄하려면 어떻게 해야 하나요? (0) | 2023.03.21 |
mongoDB가 어디에 데이터를 저장하는지 어떻게 알 수 있습니까?(디폴트 /data/db!에는 없습니다). (0) | 2023.03.21 |