首页 > 解决方案 > 尝试使用角度参数提取值

问题描述

我正在尝试将数据从“ http://169.38.82.132:94/GetFarmerInfo ”传递到“ http://localhost:4200/ ”。在这个网址“ http://169.38.82.132:94/GetFarmerInfo ”中,我试图将参数作为“授权和实例名称”传递,所以我的配置文件是

{
  "/api": {
    "target": "http://169.38.82.132:94",
    "secure": false,
    "Authorization": "bearer uRf0e8upueR4qTh_HSjzF9KiVxuXN8qK4UqHZez4LdX7DYZOsee4h0Fq1PupKGTFEIzbjq9gjiaVOtPeoayIh212nDyHOEilH2chHeXz4pXzAb8YLC4aJZ0WAEOmq0werPUeaS5c5frXo_P3iwXFtTezCxsYRkNnrXoLOfkHJsxRGW91m19EqzQgqcY5q6jQUQRZeXB9KYpI6THLLnED7ZQDNJZgTjdcuKCb-Gmb1XHD_L_V_BDlbuaEcjH3Qx52f2wOsmtyWGGQEjRMfOFtpO3KJFFmpEIVH0WxsRl5L-eg7S21i_tuT1rDQMdapXiS",
    "InstanceName":"ORISSA",
    "pathRewrite": {
      "/": ""
    }
  },
  "logLevel": "debug"

}

我的服务文件是

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class PeopleService {

  constructor(private http:HttpClient) { }

  fetchPeople(): Observable<Object>{

    return this.http.get('/GetFarmerInfo');

  };

}

运行 npm start 后,我​​得到的响应为“GET http://localhost:4200/GetFarmerInfo 404 (Not Found)”。有没有其他方法可以传递参数。

标签: angularapipostmanangular-cli

解决方案


将您的获取人员功能更改为。

fetchPeople(): Observable<Object>{

    return this.http.get('http://169.38.82.132:94/GetFarmerInfo');

  };

您必须提供 API 的确切 URL。 http://169.38.82.132:94/GetFarmerInfo在您的 HTTP 函数中。

添加标题

let headers = new HttpHeaders({
    'Authorization': 'bearer uRf0e8upueR4qTh_HSjzF9KiVxuXN8qK4UqHZez4LdX7DYZOsee4h0Fq1PupKGTFEIzbjq9gjiaVOtPeoayIh212nDyHOEilH2chHeXz4pXzAb8YLC4aJZ0WAEOmq0werPUeaS5c5frXo_P3iwXFtTezCxsYRkNnrXoLOfkHJsxRGW91m19EqzQgqcY5q6jQUQRZeXB9KYpI6THLLnED7ZQDNJZgTjdcuKCb-Gmb1XHD_L_V_BDlbuaEcjH3Qx52f2wOsmtyWGGQEjRMfOFtpO3KJFFmpEIVH0WxsRl5L-eg7S21i_tuT1rDQMdapXiS',
    'InstanceName': 'ORISSA'
});

然后在你的函数中传递标题。

fetchPeople(): Observable<Object>{

    return this.http.get('http://169.38.82.132:94/GetFarmerInfo', { headers: this.headers});

  };

我建议您对所有 http 请求使用HTTP 拦截器。

试试这个代码

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Injectable({ providedIn: 'root' })
export class PeopleService {
  constructor(private http: HttpClient) { }
   headers = new HttpHeaders({ 'Authorization': 'bearer uRf0e8upueR4qTh....', 'InstanceName': 'ORISSA' });
  fetchPeople() { return this.http.get('http://169.38.82.132:94/GetFarmerInfo', { headers: this.headers }); };
}

推荐阅读