返回 AJAX responseText 作为字符串
Returning AJAX responseText as string
在我的代码中,我尝试使用 AJAX 获取模板文件的内容,并 return 将其作为字符串,我对此发出警告。这导致 undefined
,但是如果我没有 return xmlhttp.responseText
而不是 alert(xmlhttp.responseText)
我得到了我想要的结果。
我可以return AJAX 内容作为函数外的字符串吗??
alert(getFile());
function getFile() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
return xmlhttp.responseText;
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
否:要执行您想要的操作,您需要在 getFile
函数中接受回调并调用它:
function getFile(callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
callback(xmlhttp.responseText);
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
getFile(alert);
XMLHttpRequest 是异步的。你应该像下面这样使用回调
getFile(alert);
function getFile(callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
callback(xmlhttp.responseText);
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
在我的代码中,我尝试使用 AJAX 获取模板文件的内容,并 return 将其作为字符串,我对此发出警告。这导致 undefined
,但是如果我没有 return xmlhttp.responseText
而不是 alert(xmlhttp.responseText)
我得到了我想要的结果。
我可以return AJAX 内容作为函数外的字符串吗??
alert(getFile());
function getFile() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
return xmlhttp.responseText;
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
否:要执行您想要的操作,您需要在 getFile
函数中接受回调并调用它:
function getFile(callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
callback(xmlhttp.responseText);
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
getFile(alert);
XMLHttpRequest 是异步的。你应该像下面这样使用回调
getFile(alert);
function getFile(callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function stateChanged() {
if (xmlhttp.readyState == 4)
callback(xmlhttp.responseText);
}
xmlhttp.open("POST","/template.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}