如何使用jsonp请求获取json

时间:2017-08-29 04:09:07

标签: javascript json angular instagram-api ionic3

我正在尝试使用instagrams api,而无需进行身份验证。 如果我去:https://www.instagram.com/explore/tags/chicago/?__a=1

我收到了json的回复。 我正在尝试构建一个返回该数据的角度4提供程序。

getInsta(term){
    return this.jsonp.request(this.url+term+'/?__a=1&callback=__ng_jsonp__.__req0.finished')
      .map(res => {
        console.log(res.json());
      });
  }

我尝试过“回调”和“c”。我尝试过JSONP_CALLBACK。

我收到错误:

  

“SyntaxError:Unexpected token':'。Parse error。 - in chicago:1”

  

“注入JSONP的脚本没有调用回调”

如果我点击意外令牌错误,它会将我带到响应中,其中包含所有json数据。所以这意味着它正在通过,我无法访问它!

知道如何解决这个问题吗?

以下是错误的屏幕截图以及单击错误时的屏幕截图 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

JSONP是一种获取数据跨源的方法,它的工作原理是,当文件的script包含src函数名时,它会向主体注入callback标记。

<script src="http://ani.site.com/api/?callback=myGlobalFunc">

它假设窗口上有一个名为myGlobalFunc的全局函数。

该电话的响应如下:myGlobalFunc({data: 'data1'})。 使用一个参数(即数据)调用函数。

在您的情况下,Instagram API返回 JSON 而不是JSONP

因为你无法使用这种机制。