【问题标题】:Unexpected token : in jQuery ajax call意外的令牌:在 jQuery ajax 调用中
【发布时间】:2016-03-19 12:21:28
【问题描述】:

我正在尝试向 instagram 提出一个简单的请求,如下所示:

$.getJSON("https://www.instagram.com/kidsfromthe90sband/media/?callback=?",
  function(data) {
    alert(JSON.stringify(data));
  });

http://jsfiddle.net/FPhcr/731/

但是它说 Uncaught SyntaxError: Unexpected token : 在控制台中,但 uri 没问题,如果我在 Postman 或直接在浏览器中运行它,它就可以工作。我已经搜索了其他问题,但我无法知道我的错误。 谢谢。

编辑

如果我不放回调=?还有另一个错误:请求的资源上没有“Access-Control-Allow-Origin”标头

【问题讨论】:

标签: javascript jquery ajax instagram-api


【解决方案1】:

实际上,当您在您的案例中使用任何社交应用程序数据时,例如 facebook、linkedin 或 instagram 等,您需要在那里注册您的应用程序,以便获得唯一的令牌和 ID,帮助他们对您进行身份验证。所以,他们可以填写您的通过他们提供的公共 API 请求。

它的发生是因为根据 JSONP,结果 /responce 应该包含在回调中,在这种情况下不会发生。

编辑:

您需要订阅 instagram,然后才能获得 ACCESS-TOKEN。

然后形成这样的网址

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

这将给出 jsonp。

更多信息请参考这里

  1. devloper
  2. endpoints

【讨论】:

  • 那么,我应该如何进行调用以使其正常工作?如果我不放回调=?'还有另一个错误:请求的资源上没有'Access-Control-Allow-Origin'标头
  • 它是一个服务器端实现
  • 我认为你需要 ACCESS_TOKEN 的 instagram API 然后试试这个
  • 我知道某些调用需要 ACCESS_TOKEN。但是,正如我所说,这个没有,因为我可以从浏览器或 Postman 访问它。我想知道一种使它工作的方法或解释为什么它不能工作。谢谢。
  • 您好 RYAJ,我已经接受了您的回答,因为它有效,但是它不适用于我要求的端点(我想让它在不需要 access_token 的情况下工作)。还是谢谢你。
【解决方案2】:

您将 API 视为将返回 JSONP 数据,但事实并非如此。所以 jQuery 然后尝试将纯 JSON 返回评估为 JSONP 并记录错误。

您必须为 JSONP 找到正确的 API 端点,可以在此处找到文档:https://www.instagram.com/developer/endpoints/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多