使用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的数据。 谁能帮我吗?谢谢!
答案 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);
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;
答案 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);; } });