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 issue resolved:
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 :
You need not require to
map
your response object fromhttp.get()
. It is automatically done by newangular6 http
.So it should be this way :
this.http.get(authURL).subscribe((res:any)=> {console.log("Http Get " + res); });
Original answer related to
CORS
:As suggested in that answer, try to invoke
linkedIn api
from your backend api and not from the browser directly. This will solve yourCross origin
related problem.Linkedin
will directly not allow any third application to execute itsapi
. It has to be from your backendapi
itself and not the browser.