我正在从一个API生成一个文件,并且需要不断发出请求,直到文件准备就绪,所以我使用setInterval重复调用ajax调用,但在第二次调用中,URL变得未定义。
$( "#campaign-list-table form").submit(function(event) {
event.preventDefault();
let exportOption = $(this).children("option:selected").val();
let postUrl = $(this).attr('action');
setInterval(ajaxd(postUrl), 5000);
});
/**
*
* @param postUrl
*/
let ajaxd = function (postUrl) {
$.ajax({
method: 'POST',
url: postUrl,
contentType: "application/xml",
complete: function (data) {
//let $xmlObject = parseXML(data);
console.log(postUrl);
ajaxd();
}
});
}
我希望URL的输出是'api/export/2988475,但是第二个输出是未定义的。
发布于 2019-05-31 18:20:42
您不会将函数传递给setInterval
,而是调用函数ajaxd
并将其结果作为第一个参数传递给setInterval
。
将对ajaxd
的调用包装在一个匿名函数中:
setInterval(function () {
ajaxd(postUrl)
}, 5000);
https://stackoverflow.com/questions/56393179
复制相似问题