1

我需要调用一个返回 JSON 响应的外部 URL(不在我的开发服务器中)。做了一些研究,我发现了这个这个帖子,几乎每一个都试过了,现在我的代码是这样的:

$("#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();
                }
            });
        }
    }
});

但这不起作用,那么实现这一目标的最佳方法是什么?

4

1 回答 1

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();
                }
            });
        }
    }
});
于 2013-08-27T18:45:33.150 回答