【问题标题】:Parsing JSONP data with AJAX使用 AJAX 解析 JSONP 数据
【发布时间】:2023-03-22 07:39:01
【问题描述】:

明天我有一个网页设计考试,我似乎无法理解如何使用 AJAX 读取 JSONP 响应。只要没有回调函数,我就可以使用 JSON 以及 JSONP,但是当回调函数有名称时,似乎什么都不起作用。

我将举两个例子:

第一个例子

从此链接读取数据:https://openlibrary.org/api/books?bibkeys=ISBN%3A0451526538&callback=mycallback

我的功能:

$.ajax({
        url: "https://openlibrary.org/api/books?bibkeys=ISBN:0451526538&callback=mycallback",
        dataType: "jsonp",
        success: function(data){
            var isbn = data["ISBN:0451526538"].bib_key;
                alert(isbn);

        }
    });

第二个例子

而这个我似乎无法理解为什么它起作用/不起作用。

我的方式(这行不通):

$.ajax({
        url: "http://www.flickr.com/services/feeds/photos_public.gne?tags=flowers&format=json#",
        dataType: "jsonp",
        success: function(data){
            alert(data.title);
    }
    });

正确代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
$.ajax({
            url: "http://www.flickr.com/services/feeds/photos_public.gne?tags=flowers&format=json#",
            dataType: "jsonp",
            jsonp: "jsoncallback",
            success: function(data){
                alert(data.title);
        }
        });

任何人都可以花时间解释我如何通过作为访问数据的回调函数的包装器(填充)。请不要使用 $.getJSONP,这是我必须让它在我的考试中被接受的唯一方法。

【问题讨论】:

    标签: jquery html ajax jsonp


    【解决方案1】:

    jsonp参数为jsoncallback

    http://www.flickr.com/services/feeds/photos_public.gne?tags=flowers&format=json&jsoncallback=?
    

    【讨论】:

    • 但是,如果只给出 URL,我该如何找到呢?
    • 阅读服务文档?
    • 在考试进行期间,我们限制了对 Internet 的访问,因此数据会加载,但我无法通过 Google 搜索任何内容。对于第一个示例,有没有一种方法可以获得除 mycallback({...}) 之外的响应,即没有填充的响应?
    • 如果他们不支持 CORS,那么您需要使用 JSONP,如果他们不使用回调,那么您必须使用服务使用的任何参数。我当然希望你的教授告诉你参数是什么。
    • 那么我只看响应就无法猜测回调?
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2015-01-08
    • 2012-11-05
    • 2014-07-06
    • 2012-03-16
    • 2021-02-01
    相关资源
    最近更新 更多