내 XHR의 onreadystatechange 함수를 사용하면 쉽게 document.title = xhr.responseText
을 수행 할 수 있습니다. 그러나이 함수가 responseText를 반환하도록 만들면 내 XHR의 외래 래퍼와 동일한 변수를 설정하여 응답과 동일하게 설정할 수 없습니다. 이 일을하는 방법이 있습니까? 내 래퍼 변수를 XMLHttpRequest의 responseText 값과 같게 설정할 수없는 이유는 무엇입니까?
ajax = function(url, cb)
{
xhr = (window.XMLHttpRequest)
? new XMLHttpRequest()
: new ActiveXObject('Microsoft.XMLHTTP');
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
cb(xhr.responseText);
};
}
xhr.open('get', url, true);
xhr.send();
};
내가 같은 한 경우 :
ajax('bacon.txt', function(_)
{
document.title = _;
}
그것을 절대적으로 완벽하게 작동합니다; document.title은 사실 bacon.txt 호출의 responseText가됩니다. 그러나 다음과 같이이 방법을 구현하려고하면 :
document.title = ajax('bacon.txt', function(_)
{
return _;
}
그런 행운이 없습니다. 왜 이것이 사람인지 명확히 할 수 있습니까? };
래퍼 코드가 더 잘 이해할 수 있습니다. – shahkalpesh
아마도 함수의 범위를 벗어난 변수를 선언하지 않았을 것입니다. –