在ajax中使用两个URL
Working with two URLs in ajax
我必须从两个不同的URL中获取值,然后将其合并。我知道如果我能在一个URL中获取所有数据会更好,但这就是我所拥有的,我需要使用它。
我想打印出a_value
的值,但它已经打印出来了,而b
还没有返回他的值。我读过一些关于如何使函数同步的文章,但仍然不知道如何在代码中实现它,也不知道什么是适合我的情况的最佳解决方案。我对JavaScript还很陌生,仍然需要一些帮助和指导。
function any_function() {
$.ajax(
{
url : '/url1',
type: "GET",
success:function(data, textStatus, jqXHR)
{
$("#print").html(a(data));
}
});
}
function a(data){
x = 'any value' //`do something with data and insert to this variable`
a_value = x + b(`some id that extracted from data`)
return a_value
}
function b(id){
$.ajax({
url: '/url2',
type: 'GET',
success: function (data, textStatus, jqXHR) {
b_value = c(data, id)
}
});
return b_value
}
function c(data, id){
//do something with `data` and return the value
return c_value
}
function f() {
var request1 = $.ajax({
url : '/url1',
type: 'GET'
});
var request2 = $.ajax({
url: '/url2',
type: 'GET'
});
$.when(request1, request2).done(function(result1, result2){
data1 = result1[0]
data2 = result2[0]
// r1 and r2 are arrays [ data, statusText, jqXHR ]
// Do stuff here with data1 and data2
// If you want to return use a callback or a promise
})
}
这可以通过promise以同步的方式完成:
$.get(url1)
.then(function(data1){
return $.get(url2)
})
.then(function(data2){
return $.get(url3);
})
.then(function(data3){
// All done
});
您只需要在第一个成功处理程序的成功处理程序中进行第二个调用:
function any_function() {
$.ajax({
url : '/url1',
type: "GET",
success:function(data, textStatus, jqXHR) {
$("#print").html(a(data));
b("someId");
}
});
}
function a(data){
x = 'any value' //`do something with data and insert to this variable`
a_value = x + b(`some id that extracted from data`)
return a_value;
}
function b(id){
$.ajax({
url: '/url2',
type: 'GET',
success: function (data, textStatus, jqXHR) {
b_value = c(data, id);
return b_value;
}
});
}
function c(data, id){
//do something with `data` and return the value
return c_value
}
相关文章:
- 一个jsp中有两个操作URL
- 如何在javascript或jquery中比较两个url
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 如何使用 Backbone 读取通过同一 REST URL 返回的两个不同对象
- 为什么即使两个 URL 都来自 XXXX.com,我仍然会收到 405 错误
- 如何使用jQuery获取url的最后两个字符
- 你能写一些javascript,根据URL参数加载两个独立的index.html页面吗
- 如何为同一页面上的两个可点击元素提供不同的URL
- 在ajax中使用两个URL
- Javascript,如何浏览随后的两个url
- 这是如何处理基于从 url 获取值的两个 ajax 请求吗?
- 在 javascript 中替换 URL 中的两个元素
- 根据 URL 在两个不同的 CSS 定义之间切换
- 向Facebook身份验证添加两个URL
- 一个django表单有两个输入,两个url,两个视图,都有不同的js为下面的页面
- 两个URL'使用"window.location.href"
- Javascript匹配两个url变量
- 用一键打开两个url,同时避免在Chrome中弹出窗口拦截器
- 如何同时从两个url中获取校验值
- 组合bookmarklet来创建两个URL之间的切换