我有一個預感,你只是使用字符串值的source
選項,並提供一個URL。如果正在進行中,您正確地處理了AJAX請求。 Check out this snippet從窗口小部件的源代碼:
url = this.options.source;
this.source = function(request, response) {
if (self.xhr) {
self.xhr.abort(); // <-- Problematic line.
}
self.xhr = $.ajax({
url: url,
data: request,
dataType: "json",
autocompleteRequest: ++requestIndex,
success: function(data, status) {
if (this.autocompleteRequest === requestIndex) {
response(data);
}
},
error: function() {
if (this.autocompleteRequest === requestIndex) {
response([]);
}
}
});
}
如果你正在傳遞一個字符串source
參數,你可以很容易地更換與該手工做的AJAX調用的函數(和你不放棄的請求):
source: function (request, response) {
$.ajax({
url: "your_url",
data: request.term,
dataType: "json",
success: function(data, status) {
response(data);
}
});
}
(未經測試,但應該讓你在正確的方向前進)