代码之家  ›  专栏  ›  技术社区  ›  Nicoleta Wilskon

命中linkedin的http get请求时在angular 2中出现错误

  •  2
  • Nicoleta Wilskon  · 技术社区  · 6 年前

    CORS问题已解决:

    组成部分:

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

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   Amit Chigadani    6 年前

    编辑:

    你不需要要求 map 您的响应对象来自 http.get() angular6 http .

    所以应该是这样的:

    this.http.get(authURL).subscribe((res:any)=> {console.log("Http Get " + res); });

    原始答案与 CORS :

    answer linkedIn api 从您的后端api,而不是从浏览器直接。这会解决你的问题 Cross origin 相关问题。

    Linkedin 将直接不允许任何第三个应用程序执行其 api 应用程序编程接口