获取LinkedIn分享数量JSONP
使用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的数据。 谁能帮我吗? 谢谢!
尝试
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("
" + JSON.stringify(data, null, 2) + "") }; $.getScript("https://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=myCallback");
谢谢大家的答案,但我已经解决了。
这对我有用:
$.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 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); });
几天前,LinkedIn改变了他们的API,上面的解决方案被破坏了:
$ .getJSON(“http://www.linkedin.com/countserv/count/share?url=https://www.linkedin.com&format=jsonp&callback=?”,function(data){ elem.find( “计数”)HTML(data.count)。 });
失败因为jQuery会取代? 进入一个带有数字随机名称的回调。 现在,Linkedin可以防止在回调名称中使用数字。
解决方案是使用“手动”$ .ajax来阻止jQuery自动化
$就({ dataType:“jsonp”, url:'https://www.linkedin.com/countserv/count/share', data:{'url':encodeURIComponent(location.href)}, jsonpCallback:'this_is_a_random_name', 成功:函数(数据){ elem.find( “计数”)。HTML(data.count);; } });