当我在angular中使用httpclient服务时,我发现httpclient更改了我的get请求url。
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from "rxjs/Observable";
const objeniousApiKey = '...';
const objeniousRootUri = 'https://api.objenious.com/v1';
@Injectable()
export class ObjeniousRestProvider {
constructor(public http: HttpClient) {
}
get(route: string, params?: HttpParams, headers ?: HttpHeaders): Observable<any> {
if (!headers) {
headers = new HttpHeaders();
}
headers = headers.set('apiKey', objeniousApiKey);
return this.http.get(objeniousRootUri + route, {headers, params});
}
getSystemStatesList(commaSeparatedSystemIds: string): Observable<any> {
return this.http.get(`/devices/states?id=3940649673951919,3940649673951920`);
}
}
当我使用第一个方法时,rest api调用不起作用,我试图在chrome(使用开发工具)中找到这不起作用的原因。我发现Angular将我的get请求url更改为
"http://localhost:8100/devices/states?id=3940649673951919,3940649673951920"
,但不应该是
"https://api.objenious.com/v1/devices/states?id=3940649673951919,3940649673951920"
是吗?
当我尝试第二种方法时,一切都很好。