【问题标题】:parse Instagram JSON with jQuery [duplicate]用 jQuery 解析 Instagram JSON [重复]
【发布时间】:2016-12-28 14:50:32
【问题描述】:

我正在使用 jQuery 来解析用户的最新 Instagram 图片,如下所示:

     $.getJSON(instagram_url, function(data) {
      var latestPic = data.images;
      console.log(latestPic);
      });

但是在开发工具中得到一条错误消息说

XMLHttpRequest 无法加载 https://api.instagram.com/v1/users/{user_id}/media/recent/?access_token=ACCESS_TOKEN。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'null'。

我不确定这意味着什么,因为当我将 url 粘贴到浏览器中时会收到 json 响应。 有谁知道如何正确处理这个问题?

提前致谢

【问题讨论】:

  • 这是一项安全功能,可阻止人们未经许可使用他人的网站数据。要么获得许可(或从您的服务器而不是您的浏览器应用程序请求它;))
  • @GoneCoding 感谢您的快速回复,但错误是由于我选择的 user_ID (123456)。所以我用我自己的身份证替换了那个假身份证,现在你应该可以看到我的情况了
  • 我的意思是获得使用他们的 API 的权限 :) 一些服务器可以根据请求凭据动态启用跨域访问。
  • 在我的情况下,权限不是问题。我在我的开发工具中得到了共鸣,但我无法访问 JSON 对象属性。任何想法如何做到这一点?
  • 权限完全是你的问题。有关该问题的更多信息,请参阅我标记为重复的问题。由于 Instagram 支持 JSONP,this answer 将专门解决您的问题。

标签: jquery json instagram-api


【解决方案1】:

这是一个跨域问题,只需在 URL 中包含 "callback=?"

或将$.ajax() 与“jsonp”一起使用:

$.ajax({
    url: Url,
    method: 'GET',
    dataType: 'jsonp',
    data: apiData,
    success: handleData
})

【讨论】:

    【解决方案2】:

    您可以使用 JSONP 解决这个问题(instagram 支持它)。见https://www.instagram.com/developer/endpoints/

    https://api.instagram.com/v1/tags/coffee/media/recent?access_token=ACCESS-TOKEN&callback=myCallBackHandler
    

    服务器将响应

    myCallBackHandler({
        ...
    });
    

    定义一个名为 myCallBackHandler 的函数并将您的逻辑放入其中。您的函数将使用响应 JSON 调用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-06
      • 2016-05-08
      • 2013-12-06
      • 2012-05-07
      • 2023-04-11
      • 2014-07-12
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多