【问题标题】:Call external URL from AJAX in jQuery [duplicate]在 jQuery 中从 AJAX 调用外部 URL [重复]
【发布时间】:2013-08-30 12:19:32
【问题描述】:

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

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

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

【问题讨论】:

  • JSONP 可能是最好的。
  • 您需要缩小您的问题 WAAAYY 范围。从在负载或其他东西(只是 .ajax)部分运行 Ajax 调用开始,看看它是否失败或成功,一旦你这样做,编辑你的问题,我们将从那里开始
  • 您是否尝试过使用浏览器开发工具(例如 Chrome 中的 Ctrl+Shift+I)在脚本中设置断点?如果您正在访问端点,请尝试设置 contentType: "application/json"
  • @TommyNicholas 我已经这样做了,它返回 200 OK 12ms 所以通话正在进行

标签: javascript jquery html


【解决方案1】:

你绑定了多少次“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();
                }
            });
        }
    }
});

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多