XMLHttpRequest에 관해 질문드립니다. 정보
XMLHttpRequest에 관해 질문드립니다.본문
<html><head><title></title></head>
<body>
<p>NOT TESTED (script did not run)</p>
<script type="text/javascript">
var x = (typeof XMLHttpRequest!='undefined') ? new XMLHttpRequest() : (typeof ActiveXObject!='undefined') ? new ActiveXObject('Microsoft.XMLHTTP') : null;
var passed=false;
try{
x.open('GET', 'http://external.server.com/setcookie.php', false);
x.send();
}catch(e){
passed=true;
}
document.getElementsByTagName('p')[0].firstChild.data = passed ? 'PASSED' : 'FAILED' ;
try{top.opener.rr(passed);}catch(e){}
</script>
</body></html>
코드는 위와 같습니다.
Javascript와 AJAX를 공부하려고 이거저것 뜯어보고있습니다만 이해가 가질 않는 부분이 있습니다.
XMLHttpRequest 객체 생성 또는 ActiveX 객체 생성 후 동기식으로 'http://external.server.com/setcookie.php'로 Request를 요청하는 것 까진 알겠는데 만약 Request가 이뤄지지 않았을 경우 catch(e) 부분의 passed 가 true가 되는 것인지, 이뤄졌을때 true가 되는것인지 헷갈리네요.
그리고 마지막 try{top.opener.rr(passed);}catch(e){} 이부분이 멀 의미하는지 잘 모르겠습니다.
고수님들께 도움 요청드립니다.
감사합니다 ^_^a
<body>
<p>NOT TESTED (script did not run)</p>
<script type="text/javascript">
var x = (typeof XMLHttpRequest!='undefined') ? new XMLHttpRequest() : (typeof ActiveXObject!='undefined') ? new ActiveXObject('Microsoft.XMLHTTP') : null;
var passed=false;
try{
x.open('GET', 'http://external.server.com/setcookie.php', false);
x.send();
}catch(e){
passed=true;
}
document.getElementsByTagName('p')[0].firstChild.data = passed ? 'PASSED' : 'FAILED' ;
try{top.opener.rr(passed);}catch(e){}
</script>
</body></html>
코드는 위와 같습니다.
Javascript와 AJAX를 공부하려고 이거저것 뜯어보고있습니다만 이해가 가질 않는 부분이 있습니다.
XMLHttpRequest 객체 생성 또는 ActiveX 객체 생성 후 동기식으로 'http://external.server.com/setcookie.php'로 Request를 요청하는 것 까진 알겠는데 만약 Request가 이뤄지지 않았을 경우 catch(e) 부분의 passed 가 true가 되는 것인지, 이뤄졌을때 true가 되는것인지 헷갈리네요.
그리고 마지막 try{top.opener.rr(passed);}catch(e){} 이부분이 멀 의미하는지 잘 모르겠습니다.
고수님들께 도움 요청드립니다.
감사합니다 ^_^a
추천
0
0
댓글 2개

XHR 호출시 try catch 는 문법상의 오류를 출력하지(객체가 null 이거나) XHR 상의 호출문제에 대해서는 catch 않을거라고 봅니다.
XHR 결과코드에는 실패시의 상태값이 별도로 지정되어 있습니다.
request 가 이루어지지 않았을 경우는 상태값에 따라 처리를 해야 합니다.
자세한건 검색...
XHR 결과코드에는 실패시의 상태값이 별도로 지정되어 있습니다.
request 가 이루어지지 않았을 경우는 상태값에 따라 처리를 해야 합니다.
자세한건 검색...
답변 감사드립니다. ^_^