我正在尝试建立一个应用程序,从不同的社交网络,如Facebook,LinkedIn,Twitter,StumbleUpon,Digg和美味获取网址的信息。
我正在使用REST请求信息,并且大多数情况下得到的是JSON格式的响应。并使用javascript (jQuery)解析它们
我使用JSONP dataType的jQuerys $.getJSON方法连接到Facebook,Twitter和Delicious都没有问题(添加callback=?到url),但是LinkedIn和StumbleUpon出现了问题。
当我使用相同的技术时,我得到了错误。
对于StumbleUpon
"invalid label"
{"result":{"url":"http:\/\/www.google.com\/","in_index":true,"publicid":"2pI1xR","views":201756,"title":"Google","thumbnail":"http:\/\/cdn.stumble-upon.com\/mthumb\/31\/10031.jpg","thumbnail_b":"http:\/\/cdn.stumble-upon.com\/bthumb\/31\/10031.jpg","submit_link":"http:\/\/www.stumbleupon.com\/submit?url=http:\/\/www.google.com\/","badge_link":"http:\/\/www.stumbleupon.com\/badge?url=http:\/\/www.google.com\/","info_link":"http:\/\/www.stumbleupon.com\/url\/www.google.com\/"},"timestamp":1323182766,"success":true}显然,如果没有JSONP请求类型,它将无法工作,因为它是跨域请求。我做了一些研究,发现问题可能是jQuery发送了JSONP请求,但得到了JSON响应,然后出错了。如果这是真的,我不确定我应该做些什么来纠正它。我用JSONLint做了一个响应测试,得到了有效的结果。所以问题似乎出在我解析它的方式上,而不是在响应本身。
对于LinkedIn,我得到next
"missing ) after argument list"
IN.Tags.Share.handleCount({"count":18118,"url":"http://www.google.com/"}所以很明显它的无效JSON和jQuery错误就出来了。有没有其他方法可以获得这些数据?
所以我有点被困在这里,因为我看到了结果,但我无法让它们进行解析。
另外,我不想使用服务器端的代码。
下面是我使用的代码:
var url = 'http://www.google.com';
// StumbleUpon
$.getJSON("http://www.stumbleupon.com/services/1.01/badge.getinfo?url=" + url +"&callback=?", function (data) {
console.log(data);
});
$.getJSON("http://www.linkedin.com/cws/share-count?url=" + url +"&callback=?", function (data) {
console.log(data);
});发布于 2012-09-19 05:37:00
我知道这是一个古老的问题,但我正在做类似的事情,尽管不是使用jQuery。我已经让LinkedIn使用了不同的网址:
https://www.linkedin.com/countserv/count/share?url={url}&format=jsonp在本例中,我的关键是使用jsonp值作为format。json不起作用。您还需要包含回调函数。
至于StumbleUpon,我也收到了错误,但如果我找到解决方案,我会更新这个答案。
https://stackoverflow.com/questions/8402941
复制相似问题