NETWORK_ERROR: XMLHttpRequest 예외 101
이 오류가 발생합니다.
NETWORK_ERROR: XMLHttpRequest 예외 101
한 사이트에서 XML 컨텐츠를 가져오려고 할 때.
여기 내 코드가 있습니다.
var xmlhttp;
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp==null) {
alert ("Your browser does not support XMLHTTP!");
return;
}
xmlhttp.onReadyStateChange=function() {
if(xmlhttp.readyState==4) {
var value =xmlhttp.responseXML;
alert(value);
}
}
xmlhttp.open("GET",url,false);
xmlhttp.send();
//alert(xmlhttp.responseXML);
}
xmlhttp.open("GET",url,false);
xmlhttp.send(null);
해결책이 있는 사람?
만약에url
당신이 제공하는 것은 당신의 서버 외부에 위치하고, 서버는 당신이 요청을 보내는 것을 허락하지 않았고, 당신은 권한 문제가 있습니다.다른 서버에서 데이터에 액세스할 수 없습니다.XMLHttpRequest
, 서버에서 명시적으로 허용하지 않는 경우.
업데이트: 이것이 이제 Google에서 답변으로 표시된다는 것을 깨닫고 이 오류에 대한 문서를 찾으려고 했습니다.그것은 놀랍게도 어려웠습니다.
그러나 이 기사에는 몇 가지 배경 정보와 해결해야 할 단계가 있습니다.여기서는 구체적으로 다음과 같은 오류를 언급합니다.
웹 응용프로그램의 원본에서 요청을 허용하도록 서버가 구성되어 있는 한 XMLHttpRequest가 작동합니다.그렇지 않으면 INVALID_ACCESS_ERR 예외가 발생합니다.
INVALID_ACCESS_ERR에 대한 해석이 여기서 보는 것 같습니다.
이 문제를 해결하려면 요청을 받은 서버가 오리진을 허용하도록 구성되어야 합니다.이에 대해서는 Mozilla에서 보다 자세히 설명합니다.
XMLHtpRequest로 다른 서버의 데이터에 액세스할 수 없다는 제한 사항은 URL이 원격 서버를 의미하는 경우에도 적용될 수 있습니다.
그래서 : url = "http://www.myserver.com/webpage.html "
실패할 수도 있고,
그러나: url = "/http.jp"
success - www.myserver.com 에서 요청하는 경우에도 해당됩니다.
캐시되었거나 이전에 요청했기 때문에 요청이 중단되었습니까?XMLHttpRequest Exception 101 오류는 여러 가지 이유로 발생할 수 있습니다.동일한 URL의 XMLHttpRequest를 한 번 이상 전송할 때 발생하는 것을 발견했습니다.(URL 끝에 캐시가 넌센스 문자열을 제거하여 URL을 변경하면 해당 요청을 반복할 수 있습니다. -- 해당 요청을 반복할 의도는 아니었지만, 프로그램의 이벤트가 발생하여 이 예외가 발생했습니다.)
올바른 응답 텍스트 또는 응답 X를 반환하지 않음반복 요청 시 ML은 버그(webKit일 가능성이 있음.
이 예외가 발생했을 때 readyState==4와 request object state=0 및 response로 onload 이벤트가 발생했습니다.텍스트 =="" 및 응답 XML==슬라이스.서버가 허용하는 교차 도메인 요청이었습니다.
이것은 웹킷/533.1을 사용하는 안드로이드 2.3.5 시스템에 있었습니다.
예외가 무엇을 의미하는지 문서를 가지고 있는 사람이 있습니까?
잘못된 XML을 반환할 때(루트 노드에 속성을 넣음) 이와 같은 일이 발생했습니다.누군가에게 도움이 된다면요
xmlhttp.open("GET",url, true);
비동기 부분을 true로 설정
저는 두 가지 다른 해결책을 가진 아주 멋진 기사를 발견했습니다.
- jQuery와 JSONP를 구현한 첫 번째 제품으로, 얼마나 간단한지 설명합니다.
- 두 번째 접근법은 PHP 통화를 통해 방향을 전환하는 것입니다.아주 단순하고 아주 좋습니다.
http://mayten.com.ar/blog/42-ajax-cross-domain
이 문제를 해결하는 또 다른 현대적인 방법은 Cross Origin Resource Sharing입니다.HTML5는 이 기능을 제공합니다.이 CORS_request에서 XMLhttp 요청을 "wrap"할 수 있으며 대상 브라우저가 이 기능을 지원하는 경우 사용할 수 있으며 문제가 없습니다.
편집: 추가적으로 이 문제를 야기할 수 있는 많은 이유가 있음을 덧붙여야 합니다.도메인 간 제한뿐만 아니라 단순히 웹에서 잘못된 설정도 있습니다.웹 서비스의 구성입니다.
예제 IIS().NET):
외부 소스(CORS 요청이 있는 컴파일된 Phonegap 앱의 경우)에서 HTTP 액세스를 활성화하려면 웹에 이를 추가해야 합니다.CONFIG
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
또 다른 시나리오:
두 개의 웹 서비스가 실행되고 있는데...포트 80에 하나, 포트 90에 하나.이로 인해 XML HTTP Request Error가 발생했습니다.왜 그런지도 모르겠습니다 :).그럼에도 불구하고 저는 이것이 경험이 부족한 많은 독자들에게 도움이 될 것이라고 생각합니다.
언급URL : https://stackoverflow.com/questions/2235929/network-error-xmlhttprequest-exception-101
'programing' 카테고리의 다른 글
데이터 URL 파일 다운로드 (0) | 2023.09.07 |
---|---|
Oracle - 하나의 쿼리에 여러 개의 테이블 드롭 (0) | 2023.09.07 |
다른 도메인으로 전환하고 사용자를 얻는 방법 (0) | 2023.09.07 |
MariaDB 대 Mysql 쿼리 문제 (0) | 2023.09.07 |
멀티파트예외:현재 요청이 다중 부품 요청이 아닙니다. (0) | 2023.09.07 |