【问题标题】:jQuery onsuccess not working even though firebug showing the response ok即使萤火虫显示响应正常,jQuery onsuccess 也无法正常工作
【发布时间】:2011-08-07 17:31:49
【问题描述】:

我在 $.ajax 调用的 onsuccess 函数中显示警告框时遇到问题。我检查了萤火虫,我确实收到了 json 格式的响应,但由于某种原因,警报即将到来,我也无法 console.log(jsonp)。下面是代码:

$.ajax({

        type: "GET",
        url: "http://maps.googleapis.com/maps/api/directions/json?origin=ajax&destination=toronto&region=ca&avoid=tolls&sensor=false",
        dataType: "jsonp",
        success: function(jsonp) {
              alert(jsonp);
            console.log(jsonp);

        }
    });

});

【问题讨论】:

    标签: jquery ajax jsonp


    【解决方案1】:

    阅读这里清楚地写着:http://api.jquery.com/jQuery.ajax/

    默认情况下,发送所有请求 异步(即设置为 默认情况下为真)。如果你需要 同步请求,设置此选项 为假。跨域请求和 dataType: "jsonp" 请求不 支持同步操作。笔记 同步请求可能 暂时锁定浏览器, 禁用任何操作,而 请求处于活动状态。

    还有一件事提到

    “jsonp”:使用 JSON 块加载 JSONP。将添加一个额外的“?callback =?” 到您的 URL 的末尾以指定 回调。

    如果你想强制跨域 请求(如 JSONP) domain,设置crossDomain的值 为真。例如,这允许 服务器端重定向到另一个 域名

    参考链接:

    PHP-JSONP

    CROSS DOMAIN DATA with jsonp

    JavaScript: How do I create JSONP?

    【讨论】:

    • 请解释当我从服务器获取响应并且我想处理以 json 格式返回的数据但我现在如何访问这些数据时应该怎么做?
    • 请阅读我提供的链接......这很容易......基本上你必须在 url 的 and 处写 ?callback=
    • 现在我正在做 ?callback=myFunction 但仍在 myFunction 内部,我无法处理数据,没有警报或日志,我也无法使用 $(myDiv).text( jsonp_data); ?如果您能提及语法,我将不胜感激
    • 我用参考链接更新我的答案..请看一下..All D Best
    • 谢谢,我已经阅读了大部分链接,但我仍然无法打印警报或使用从响应中返回的数据。我可以看到数据在 firbug 中返回。 JsonP 现在工作正常,如何使用这些数据?
    猜你喜欢
    • 2019-03-15
    • 2014-02-20
    • 1970-01-01
    • 2017-11-07
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    相关资源
    最近更新 更多