点击http获取请求获取角度为2的错误

问题描述 投票:2回答:1

我正在使用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(){

       }
    }

enter image description here

angular angular2-services linkedin-api
1个回答
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本身而不是浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.