【发布时间】:2018-02-20 01:48:16
【问题描述】:
我正在尝试使用 axios get 请求访问linkedin 配置文件,这在 localhost 上不起作用,我收到以下错误
XMLHttpRequest 无法加载 https://api.linkedin.com/v1/people/~:(id,email-address)?format=json。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8030” 使用权。响应的 HTTP 状态代码为 401。
我可以使用react-linkedin-login 包获取访问令牌,获取访问令牌后我正在尝试以下代码
var linkedInUrl = `https://api.linkedin.com/v1/people/~:(id,email-address)?format=json`;
var headers = {
'Authorization': `Bearer ${accessToken}`,
'Access-Control-Allow-Methods':'GET,PUT,PATCH,POST,DELETE',
'Access-Control-Allow-Origin':'*',
'Access-Control-Request-Headers':'Origin, X-Requested-With, Content-Type, Accept',
'Content-Type':'application/x-www-form-urlencoded'
};
return (dispatch) => {
axios.get(linkedInUrl, {headers}).then(({data}) => {
console.log(data);
}, (error) => {
console.log(error);
});
}
我猜问题在于linkedin服务器如何接受请求,我认为它不允许本地主机拨打电话。在我在服务器上部署和运行之前,如何克服这一点来实际开发服务。
感谢您的帮助..
【问题讨论】:
-
查看stackoverflow.com/questions/44530615/… 的答案以及那里的代码示例。据我所知,LinkedIn 提供的从浏览器中运行的前端 JavaScript 代码访问其 API 的唯一受支持方式是使用他们的 JavaScript SDK,该 SDK 记录在 developer.linkedin.com/docs/getting-started-js-sdk 并且上面引用的答案有代码示例
标签: javascript cors linkedin linkedin-api