javascript - 如何使多个 XMLHttpRequest for JSON 形成不同的位置?

标签 javascript json ajax

我正在尝试用 Javascript 创建多个 XMLHttpRequest - 使用两个不同的 URL。目的是将每个响应保存到一个变量中并使用所有响应。

其实我就是这样做的,有没有优雅的方法呢?

var ourRequest = new XMLHttpRequest();
ourRequest.open('GET', 'http://website-one.com/FIRST.json');
ourRequest.onload = function() {
    var  Data_One = JSON.parse(ourRequest.responseText);
    call_second(Data_One);
};
ourRequest.send();

function call_second(Data_From_One) {
    var ourRequest_TWO = new XMLHttpRequest();
    ourRequest_TWO.open('GET', 'http://website-two.com/second.json');
    ourRequest_TWO.onload = function() {
        var  Data_TWO = JSON.parse(ourRequest_TWO.responseText);
        work_with_them(Data_From_One, Data_Two);
};
ourRequest_TWO.send();

function work_with_them(data_one, data_two) {
    //do my work
}

最佳答案

不,使用 XMLHtpRequest 时没有更简单的方法,您可以使用其他库(Ajax)或使用一些较新的 javascript API,例如 Promisesasync/await拥有更清晰的代码和更具可读性的代码。

重构后的代码将是:

const chainedFunction = async () => {
   const firstResult = await ourRequest();
   const second = await call_second(firstResult);
   // do some magic
};

关于javascript - 如何使多个 XMLHttpRequest for JSON 形成不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876249/

相关文章:

javascript - D3 : data, enter, append pattern 向外部 block 添加数据

json - Go JSON解析错误

asp.net - Application Insights 将 ConnectedService.json 文件添加到我的项目中,这有什么作用?

javascript - for 循环在第一次迭代时停止

javascript - 当我使用 gulp 和 browserify 时,我的 javascript 模块无法工作

javascript - 使用 React JS 右键单击​​菜单

javascript - HTML 更改时验证限制复选框不起作用

json - 如何使用Elasticsearch作为Json存储和获取文档

java.lang.IllegalStateException : Parameters processing failed error in jboss 7. 1.1

javascript - 在新闻提要上重复淡入淡出