Hitting the http get request for linkedin giving error in angular 2

风格不统一 提交于 2019-12-31 03:02:31

问题


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(){

       }
    }


回答1:


EDIT :

You need not require to map your response object from http.get(). It is automatically done by new angular6 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 your Cross origin related problem.

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.



来源:https://stackoverflow.com/questions/52179560/hitting-the-http-get-request-for-linkedin-giving-error-in-angular-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!