我想在click事件中进行两个Ajax调用。每个ajax调用都会执行不同的操作,并返回最终回调所需的数据。第一个调用是onload事件,该事件返回一个搜索表单,该表单具有从api生成的ID。此api返回搜索表单没有问题。调用本身是相互依赖的,最后一个调用只能使用第一个调用的结果。我得到的错误是f没有定义。
$(document).ready(function() {
var searchForm = (function() {
$.ajax({
async: true;
//"code"//
data.map(function(f)) {
return <input id=f.Datafield>
}
});
});
$("#btn").on("click", function(event) {
event.preventDefault();
var id = searchForm($("#" + f.DataField));
$.ajax({
URL= "api" + id
async:true;
});
});
searchForm()
}
答案 0 :(得分:0)
Ajax请求是异步的。您要么需要将第一个请求用作承诺,要么将async
标志设置为false。
$(document).ready(function() {
let res = $.ajax({
...
async: false
});
// do whatever you want with res
或作为承诺:
$(document).ready(function() {
$.ajax({
...
}).then(function(data, textStatus, jqXHR) {
//the request was a success
// read the doc here : http://api.jquery.com/jquery.ajax/
console.log(data)
}, function(jqXHR, textStatus, errorThrown) {
//the request failed
// read the doc here : http://api.jquery.com/jquery.ajax/
}))