获取LinkedIn分享数量JSONP

时间:2015-01-03 19:03:06

标签: javascript jquery json jsonp linkedin

使用LinkedIn API,我想获得一个URL的份额。

https://www.linkedin.com/countserv/count/share?url=http://www.linkedin.com&format=json

但由于同源策略,这给了我一个错误。 我想使用JSONP然后获取数据,但我被困在那里。

$.getJSON("https://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=myCallback", function(data) {
    elem.find(".count").html(data.count);
});

我仍然收到Same-Origin Policy错误,并且没有来自data.count的数据。 谁能帮我吗?谢谢!

4 个答案:

答案 0 :(得分:2)

尝试

myCallback = function(data) {
  // do stuff with `data`
};
var url = "https://www.linkedin.com/countserv/count/share?"
          + "url=https://www.linkedin.com&format=jsonp&callback=myCallback";
$.getScript(url);

请参阅jQuery.getScript()



myCallback = function(data) {
  $("body").append("<pre>" + JSON.stringify(data, null, 2) + "</pre>")
};

$.getScript("https://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=myCallback");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

感谢大家的回答,但我自己已经解决了。

这对我有用:

$.getJSON("http://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=?", function(data) {
        elem.find(".count").html(data.count);
});

答案 2 :(得分:1)

从jQuery 1.5.1开始,这是构建AJAX请求的推荐方法:

$.ajax({
    dataType: "jsonp",
    url: "http://www.linkedin.com/countserv/count/share",
    data: {
        callback: "?",
        format: "jsonp",
        url: "http://www.example.com/"
    }
}).done(function(data) {
    console.log(data.count);
});

答案 3 :(得分:0)

几天前,LinkedIn更改了他们的API,上面的解决方案被破坏了:


    $.getJSON("http://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=?", function(data) {
            elem.find(".count").html(data.count);
    });

失败,因为jQuery会取代?进入一个带有数字随机名称的回调。现在,Linkedin可以防止在回调名称中使用数字。

解决方案是用来手动调用&#34; $ .ajax防止jQuery自动化


    $.ajax({
        dataType: "jsonp",
        url: 'https://www.linkedin.com/countserv/count/share',
        data: {'url':encodeURIComponent(location.href)},
        jsonpCallback: 'this_is_a_random_name',
        success: function(data){
                elem.find(".count").html(data.count);;
        }
    });