我希望有两个$.get
方法一个接一个地运行,我已查找过,似乎有一些答案,但所有人都没有提到访问JSON响应。
我尝试的第一件事是在另一个回调函数中调用这样的调用:
var url1 = "json_example1.json";
var url2 = "json_example2.json";
var callback1 = function (response1) {$.get(url2,callback2);}
var callback2 = function (response2) {console.log(response1,response2)}
第二个回调函数甚至无法运行!
我也试过像这样使用when..this
var url1 = "json_example1.json";
var url2 = "json_example2.json";
var callback1 = function (response1) {alert("first callback!")}
var callback2 = function (response2) {console.log(response1,response2)}
$.when($.get(url1,callback1)).then($.get(url2,callback2));
它抛出一个错误,表示没有定义response1。
即使我将响应放在这样的全局变量中:
var json1,json2;
var url1 = "json_example1.json";
var url2 = "json_example2.json";
var callback1 = function (response1) {json1 = response1};
var callback2 = function (response2) {json2 = response2;console.log(json1,json2)};
$.when($.get(url1,callback1)).then($.get(url2,callback2));
由于某种原因,callback2
功能无法获得和json2 = undefined
那么如何在第二个回调函数中连续运行$.get
个ajax请求并访问它们的响应?
答案 0 :(得分:1)
您需要创建一个全局变量来存储来自第一个请求的数据,然后您就可以使用该数据了。
somefunction = function() {
var response1;
$.get('/path_to_somewhere1', function(data) {
// Store just given response
response1 = data;
$.get('/path_to_somewhere2', function(data) {
alert(response1); // here's response from the first request
alert(data); // here's response from the second request
});
});
}
答案 1 :(得分:0)
显然第二个文件是空的。所以现在我知道如果第二个文件为空,则不会执行回调函数。