【发布时间】:2010-08-06 13:47:55
【问题描述】:
好的,我到处找这个。我删除了几个变量声明,因为我可以确保我的 XMLHttpRequest 正常工作。
function submit_edit_form()
{
// id and title are already declared
var x = ajax_edit_form_save(id, 'title', title);
alert(x);
}
function ajax_edit_form_save(id, property, new_value)
{
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
// screw IE5 & IE6
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.responseText != '')
{
return xmlhttp.responseText;
}
}
// myURL is already defined. I'm not troubleshooting this part, I know it's working
xmlhttp.open("GET", myURL, true);
xmlhttp.send();
}
因此,当我调用 submit_edit_form()(它调用 ajax_edit_form_save())时,我会收到“未定义”警报。我知道问题是 ajax_edit_form_save() 在 readyState 1 上返回 undefined。我正在摸不着头脑,因为我只有在 readyState == 4 时才返回。我怎样才能推迟返回值以便 x 得到实际响应文本?
【问题讨论】:
标签: javascript ajax xmlhttprequest