jquery - 来自 LinkedIn 和 StumbleUpon 的 JSONP 请求

标签 jquery json cross-domain jsonp

我正在尝试构建一个应用程序,从不同的社交网络(例如 Facebook、LinkedIn、Twitter、StumbleUpon、Digg 和 Delicious)获取有关 URL 的信息。

我正在使用 REST 请求信息,并且大多数情况下都会收到 JSON 格式的响应。并使用 javascript (jQuery) 解析它们

我使用 JSONP 数据类型(在 URL 中添加回调=?)通过 jQuery 的 $.getJSON 方法连接到 Facebook、Twitter 和 Delicious 没有任何问题,但 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,我得到下一个

"missing ) after argument list" 
IN.Tags.Share.handleCount({"count":18118,"url":"http://www.google.com/"}

很明显,它的无效 JSON 和 jQuery 出现了错误。有没有办法以其他方式获取该数据?

所以当我看到结果时我有点卡在这里,但我无法让它们解析。

PS 我不想为此使用服务器端代码。

这是我使用的代码:

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);
});

最佳答案

我知道这是一个较旧的问题,但我正在研究类似的问题,尽管没有使用 jQuery。我已经让 LinkedIn 使用不同的 URL 工作:

https://www.linkedin.com/countserv/count/share?url={url}&format=jsonp

在这个例子中,对我来说关键是使用 jsonp 值作为格式。 json 不起作用。您还需要包含回调函数。

至于 StumbleUpon,我也遇到了错误,但如果找到解决方案,我会更新此答案。

关于jquery - 来自 LinkedIn 和 StumbleUpon 的 JSONP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8402941/

相关文章:

javascript - MVC4如何在javascript中将值传递给Html.Partial?

javascript - jQuery maskedinput 触发器在粘贴时完成两次

javascript - removeClass 方法不工作 jquery

javascript - JSON:循环发票项目:如果发票号不存在则添加,如果存在则更新值,包括示例

ios - 如何使用离线数据+同步创建原生 iOS 应用程序

javascript - 通过javascript将数据发送到另一个html页面?

json - 将数组映射到没有公共(public)字段的对象

laravel - Axios POST 到 Laravel API 会导致 419 错误,但在 postman 中工作正常

ajax - 何时启用 CORS 是安全的?

ruby-on-rails - Rails、REST 架构和 HTML 5 : Cross domain requests with pre-flight requests