XML 응답을 받고 내 웹 페이지에 reposne을 표시하기 위해 타사 URL을 치려고합니다. IE 및 Safari 브라우저에서 상태가 200이고 읽기가 4 인 응답이 적절합니다. 하지만 FF3.5와 Crome에서 XMLHTTPRequest 상태는 0이고 reponseText는 빈 문자열로 제공됩니다. 프로토 타입 1.5 버전의 js 파일을 사용하여 일반적인 XMLHTTPRequest Ajax 코드를 작성하는 많은 옵션을 시도했지만 여전히 FF 3.5의 상태와 reponseText는 0과 빈 문자열과 동일하게 유지됩니다.XMLHTTPRequest.status가 0을 반환하고 FireFox 3.5에서 responseText가 비어 있습니다.
이 문제를 해결하는 방법이나이 문제를 일으키는 정확한 원인을 알려 주시면 대단히 감사하겠습니다. 필자도 로컬에서 코드를 실행하려고 시도했지만 웹 서버에 배포하는 것은 여전히 FF로 repsonse가 동일합니다.
다음은 당신이 same origin policy에 충돌 한 것 같습니다 내 코드
<script type="text/javascript" src="prototype_ajax.js"></script>
<script type="text/javascript" language="javascript">
new Ajax.Request("I place my URL Here", {
method: 'get',
onSuccess : function(transport){
var resultDoc = transport.responseText;
var rootObj = loadXML(resultDoc);
},
onFailure : function(transport){
alert(' On Failure '+transport)
}
});
function loadXML(xmlFile) {
var xmlDocElement =null;
var xmlDoc = null;
if (window.ActiveXObject) {
try {
// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xmlFile);
} catch (e) {
alert("inside catch::"+e.message);
}
} else {
// code for Mozilla, Firefox, Opera, etc.
parser=new DOMParser();
xmlDoc=parser.parseFromString(xmlFile,"text/xml");
//xmlDocElement=xmlDoc.documentElement;
}
//alert('loadXML value '+xmlDoc)
return xmlDoc;
}
</script>
요청을 실행하는 스크립트가있는 페이지와 동일한 도메인에 "타사 URL"이 있습니까? – CalebD
또한 표준이 아니며 폭넓게 호환되지 않는 DOMParser 또는 XMLDOM이 아닌 XMLHttpRequest를 사용하여 XML 파일을로드해야합니다. – bobince