我正在使用jQuery ajax插件进行AJAX调用,在成功块中,我进行了另一个AJAX调用。类似的东西:
$.ajax({
type: "GET",
url: <someUrl>,
data: {
id: <someParam>
},
success: function (data) {
$.ajax({
type: "GET",
url: <someOtherUrl>,
data: {
id2: <someOtherParam>
},
success: function (checkoutData) {
//do something
},
error: function (request, status, error) {}
});
},
error: function (request, status, error) {}
});
UPDATE :代码只是伪代码,我更关心在AJAX成功块中调用AJAX的概念。
我注意到我的页面上出现了一些奇怪的行为。似乎第一个AJAX调用有时无法调用URL,但不会返回任何错误(我尝试在错误块中捕获它)。有什么我应该小心的吗?
谢谢,
伊拿克里斯
答案 0 :(得分:0)
很奇怪,因为AJAX是异步不同步的。尝试使用complete
代替success
。
var value = null;
$.ajax({
type: "GET",
url: <someUrl>,
data: {
id: <someParam>
},
success: function (data) {
value = data
},
complete: function() {
$.ajax({
type: "GET",
url: <someOtherUrl>,
data: {
id2: <someOtherParam>
},
success: function (checkoutData) {
value = checkoutData
},
complete: function() {
//process here
},
error: function (request, status, error) {}
});
},
error: function (request, status, error) {}
});
答案 1 :(得分:0)
如果我是你,我会明确设置三个属性。在执行ajax GET时,他们的缺席(特别是缓存:假)是有时导致奇怪行为的原因。
dataType: "json",
contentType: "application/json;charset=utf-8",
cache:false
我在这里假设您正在发送json并将json作为回复
答案 2 :(得分:0)
好像它与嵌套的AJAX请求无关。它只是错误分配的ID和类的组合。我很抱歉,对此感到抱歉,我感谢大家的回答以及你对这个问题所付出的努力。