击中对linkedin 的http get 请求在角度2 中给出错误 [英] Hitting the http get request for linkedin giving error in angular 2
问题描述
我正在使用linkedin 进行注册,需要获取访问代码和基本配置文件详细信息.但是当我发布请求时,我的控制台中出现 CORS 错误,当我直接在浏览器中点击 URL 时,它会正确地将我带到登录页面.击中请求会出现什么问题?
I am doing signup with linkedin and need to fetch access code and basic profile details. But when I post the request, I am getting CORS error in my console, when I hit the URL directly in browser, it takes me to the signin page correctly. What would be the problem hitting the request?
CORS 问题已解决:
CORS issue resolved:
我发现 localhost:4200 没有/",在包含它之后,CORS 错误得到解决,但是点击我的 http.get 有问题组件:
I found localhost:4200 does not had '/' and after including it , CORS error was resolved , but hitting my http.get is having a problem component:
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(){
}
}
推荐答案
EDIT :
您不需要从 http.get()
中map
您的响应对象.由新的 angular6 http
自动完成.
You need not require to map
your response object from http.get()
. It is automatically done by new angular6 http
.
所以应该是这样:
this.http.get(authURL).subscribe((res:any)=> {console.log("Http Get " + res); });
与 CORS
相关的原始答案:
Original answer related to CORS
:
正如 answer 中所建议的,尝试调用 linkedIn api
来自后端 api 而不是直接来自浏览器.这将解决您的 Cross origin
相关问题.
As suggested in that answer, try to invoke linkedIn api
from your backend api and not from the browser directly. This will solve your Cross origin
related problem.
Linkedin
将直接不允许任何第三方应用程序执行其 api
.它必须来自您的后端 api
本身,而不是浏览器.
Linkedin
will directly not allow any third application to execute its api
. It has to be from your backend api
itself and not the browser.
这篇关于击中对linkedin 的http get 请求在角度2 中给出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!