javascript - 如何返回 AJAX 响应文本?

标签 javascript ajax

为了更好地组织代码,我不想在 req.onreadystatechange 处理程序中放置回调函数,而是简单地返回数据。

在以下 javascript 中,“raw_data”变量未定义,因为在 ajax 响应之前调用了 parse_data() 函数。

function dostuff(){
   var raw_data = ajax_fetch_data();
   var parsed_data = parse_data(raw_data);
}

是否可以在 ajax_fetch_data() 中的 req.onreadystatechange 返回数据之前不调用 parse_data()?

我不喜欢将 parse_data() 调用作为回调嵌套在 ajax_fetch_data() 中。

最佳答案

Ajax 中的 A 表示“异步”。如果您的调用是异步的,则不可能使用那样的返回值。您必须等待带有回调的事件。但是,您可以像这样发送同步请求:

var req = new XMLHttpRequest();  
req.open('GET', 'http://www.example.org/', false);
req.send(null);  
if(req.status == 200)  
    return req.responseText;  

第二行的false指定同步性质(第三个参数的默认值为true)。

Mozilla Developer Center 还有更多内容.

关于javascript - 如何返回 AJAX 响应文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546908/

相关文章:

jquery - 如何使用jquery ui slider 创建分页效果并加载<DIV>中的内容?

javascript - 如何避免在React功能组件中不必要地重新渲染 "static components"?

javascript - 如何在普通 JavaScript 中获取选中复选框的值?

javascript - Angular 面板替换为单击事件

javascript - 通过 AJAX 提交表单而不重新加载页面

javascript - jquery 自动完成文本框 onchange 不起作用

javascript - 使用ajax在数据库中保存多个同名字段

javascript - D3.时间刻度不断返回默认值

尽管返回 false,Javascript 函数仍返回 url 中的哈希值

php - JavaScript 函数没有响应