CORS阻止LinkedIn分享api

时间:2015-04-08 10:52:30

标签: javascript angularjs cors linkedin linkedin-jsapi

我尝试使用LinkedIn共享API通过AngularJS应用程序中的JavaScript发布新内容,如下所示。

var xml = "<share><comment>" + content + "</comment><visibility><code>anyone</code></visibility></share>";

var req = {
   method: 'POST',
   url: 'https://api.linkedin.com/v1/people/~/shares?oauth2_access_token=' + account.token,
   headers: {
       'Content-Type': 'text/plain'
   },
   data: xml
};

$http(req).success(function(data) {
   console.log(data);
   console.log('published to linkedin');
}).error(function() {
   console.log(arguments);
   console.log('failed to publish to linkedin');
});

我可以成功发布这些数据。但是,浏览器阻止响应被读取,因为响应没有“Access-Control-Allow-Origin”标题。

Access-Control-Allow-Origin

但是,我在LinkedIn应用程序设置中提供了http://localhost:3000和“https://localhost:3000”域。

LinkedIn Application Settings

Chrome中的请求/响应如下所示。

Failing request response

有关如何阅读响应而不让浏览器阻止它的任何想法?

我认为问题是LinkedIn API响应中缺少Access-Control-Allow-Origin标头?

1 个答案:

答案 0 :(得分:8)

看起来LinkedIn的REST API不支持CORS。他们建议从后端使用REST API,而不是从浏览器使用。必须在浏览器中使用JS-SDK。

https://developer-programs.linkedin.com/forum/cors