我正在使用linkedin进行注册,需要获取访问代码和基本个人资料详细信息。但是,当我发布请求时,我的控制台中出现CORS错误,当我直接在浏览器中单击URL时,它将带我正确进入登录页面。达到要求会是什么问题?
CORS问题已解决:
我发现localhost:4200没有'/',在包含它之后,CORS错误已解决,但是击中我的http.get时遇到了问题 组件:
import { Injectable } from '@angular/core';
import {Http} from '@angular/http';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators'
import { mapToExpression } from '../../../node_modules/@angular/compiler/src/render3/view/util';
@Injectable({
providedIn: 'root'
})
export class LinkedInService {
constructor(private http:Http) {
console.log("In Linked in constructor");
}
public linkedInSignIn(){
console.log ("Linked in Sign in");
let authURL ="https://www.linkedin.com/oauth/v2/authorization?"+// "https://www.linkedin.com/uas/oauth2/authorization?"+
"response_type=code"+
"&client_id=781872"+
"&state=xys"+
"&redirect_uri=http://localhost:4200/";
console.log("auth rul" +authURL);
this.http.get(authURL).pipe(map(res => res.json()))
.subscribe((res:Response)=>{
console.log("Http Get " + res);
});//people => this.people = people);
}
public linkedInSignOut(){
}
}
答案 0 :(得分:2)
编辑:
您不需要map
来http.get()
的响应对象。它是由新的angular6 http
自动完成的。
所以应该这样:
this.http.get(authURL).subscribe((res:any)=> {console.log("Http Get " + res); });
与CORS
相关的原始答案:
如该answer中的建议,请尝试从您的后端api而不是直接从浏览器中调用linkedIn api
。这将解决您的Cross origin
相关问题。
Linkedin
将直接不允许任何其他应用程序执行其api
。它必须来自您的后端api
本身,而不是来自浏览器。