我需要调用返回JSON响应的外部URL(不在我的开发服务器中)。我做了一些研究,发现this和this发布了几乎所有内容,现在我的代码就是这样:
$("#query").on("keyup", function(e) {
if (e.which !== 32) {
var value = $(this).val();
var noWhitespaceValue = value.replace(/\s+/g, '');
var noWhitespaceCount = noWhitespaceValue.length;
if (noWhitespaceCount % 3 === 0) {
var request = $.ajax({
type: 'GET',
data: "text=" + $(this).val(),
url: "http://192.168.0.159:3000/products/search/all",
success: function(data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
request.abort();
}
});
}
}
});
但它不起作用,那么实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
绑定“keyup”多少次?您是否尝试中止之前的请求?
$("#query").on("keyup", function(e) {
if (e.which !== 32) {
var value = $(this).val();
var noWhitespaceValue = value.replace(/\s+/g, '');
var noWhitespaceCount = noWhitespaceValue.length;
if (noWhitespaceCount % 3 === 0) {
/* Aborting previous Requests */
if(request) request.abort();
var request = $.ajax({
type: 'GET',
data: "text=" + $(this).val(),
url: "http://192.168.0.159:3000/products/search/all",
success: function(data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR, textStatus, errorThrown);
request.abort();
}
});
}
}
});