我的$. getjson()脚本无法工作

My $.getJSON() script isn't working

本文关键字:工作 脚本 getjson 我的      更新时间:2023-09-26

我刚开始这个JSON/AJAX的东西,我有一个很难弄清楚为什么这是不工作…我在很多地方搜索过,但没有关于如何使用$的详细描述。提供getJSON。你能帮我一下吗?你能提供一些信息为什么我的脚本不工作吗?我想这是因为i, itemdata.response[i],但我找不到他们需要什么…

var url = "https://api.instagram.com/v1/users/3/media/recent/?access_token=18360510.5b9e1e6.de870cc4d5344ffeaae178542029e98b";
$.getJSON(url, function(data) 
{
    $.each(data.response, function (i, item) 
    {
        instagram += '<li>';
        instagram += '<a href="'+ data.response[i].link +'" target="_blank">';
        instagram += '<div class="imag3" style="background-image: url('+ data.response[i].images.low_resolution.url +');">';
        instagram += '</div></a>';
        instagram += '</li>';
        $('#instagram-cont').html(instagram);
    });
<标题> 更新

如建议,我已使用console.log(data)在控制台上,它给了我一个Object下拉框,里面是data: Array[15]所以我更新了我的代码,像这样:

var url = "https://api.instagram.com/v1/users/3/media/recent/?access_token=18360510.5b9e1e6.de870cc4d5344ffeaae178542029e98b";
    $.getJSON(url, function(data) {
    $.each(data.data, function (i, item) {
    instagram += '<li>';
    instagram += '<a href="'+ data.data[i].link +'" target="_blank">';
    instagram += '<div class="imag3" style="background-image: url('+ data.data[i].images.low_resolution.url +');">';
    instagram += '</div></a>';
    instagram += '</li>';
    $('#instagram-cont').html(instagram);
    });

成功了!!谢谢大家的帮助

您可能需要使用JSONP而不是常规的AJAX调用。

http://www.sitepoint.com/jsonp-examples/

这是一个工作小提琴:http://jsfiddle.net/76bew4vk/

console.log是你的朋友。使用它来查看返回数据的结构。我还将调用改为jsonp。

    var url = "https://api.instagram.com/v1/users/3/media/recent/?access_token=18360510.5b9e1e6.de870cc4d5344ffeaae178542029e98b";
$.ajax({
    type: 'GET',
    url: url,
    contentType: "application/json",
    dataType: 'jsonp'
})
.done(function(data){
    //console.log(data);
    $.each(data.data, function (i, item) 
    {
        instagram = '<li>';
        instagram += '<a href="'+ item.link +'" target="_blank">';
        instagram += '<div class="imag3" style="background-image: url('+item.images.low_resolution.url +');">';
        instagram += '</div></a>';
        instagram += '</li>';
        $('#instagram-cont').append(instagram);
    });
});

首先你应该在'each'函数中使用"item"而不是data.response[i]其次,我认为你应该改变每个循环之外的html

返回的JSON数据流不包含属性" data.response "

将其作为参数$.each(data.response, ....引用将导致data.response[i].link

中的长度错误。

查看返回的JSON数据的结构并正确处理异常

根据评论中的建议,我使用了console.log(data)在控制台上,它给了我一个Object下拉菜单,里面是data: Array[15]所以我更新了我的代码,像这样:

var url = "https://api.instagram.com/v1/users/3/media/recent/?access_token=18360510.5b9e1e6.de870cc4d5344ffeaae178542029e98b";
    $.getJSON(url, function(data) {
    $.each(data.data, function (i, item) {
    instagram += '<li>';
    instagram += '<a href="'+ data.data[i].link +'" target="_blank">';
    instagram += '<div class="imag3" style="background-image: url('+ data.data[i].images.low_resolution.url +');">';
    instagram += '</div></a>';
    instagram += '</li>';
    $('#instagram-cont').html(instagram);
    });

成功了!!谢谢大家的帮助