有效json的jQuery语法错误

时间:2017-11-07 07:11:15

标签: javascript jquery json ajax

我正在尝试使用jQuery ajax获取Instagram用户详细信息,可以从网址找到

https://www.instagram.com/instagram/?__a=1

但是当我通过以下代码中的ajax调用它时

$(document).ready(function(){
 var instagram = 'instagram';
    $.ajax({
      url : 'https://www.instagram.com/'+ instagram +'/?__a=1',
      dataType: "jsonp",
      success: function(e) {
        document.write(JSON.stringify(e));
      }
    });
});

它给我一个错误:

  

失踪;在陈述之前[在Json]

然而,当我复制并粘贴它以便在一些可用的在线工具上进行验证时,它显示有效格式化的json。

  

DEMO:https://codepen.io/abhibagul/pen/WXGoYb?editors=0010

     

错误在浏览器控制台中可见。

2 个答案:

答案 0 :(得分:0)

如果您收到JSON的回复, 从dataType: "jsonp"更改为dataType: "json"

Valide json响应看起来像

{
     "Name": "Foo",
     "Id": 192.168.73.96,
     "Rank": 7
}

jsonp就像

parseResponse({"Name": "Foo", "Id": 1234, "Rank": 7});

here

获取更多详细信息

答案 1 :(得分:0)

Instagram不支持jsonp,它不再用于支持CORS了。将jsonp更改为json。但是,这不起作用,因为Instagram的CORS策略阻止了它。您需要使用Instagram提供的API。

$(document).ready(function() {
  var instagram = 'instagram';
  $.ajax({
    url: 'https://www.instagram.com/' + instagram + '/?__a=1',
    dataType: "json",
    success: function(e) {
      document.write(JSON.stringify(e));
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>