HttpParams问题Angular 4,参数错误



我不明白为什么,也找不到答案。

当我想在http请求中使用params时,我遇到了这个问题。

identificationClientMAil(phone: string, mail: string) : Observable <any>{
let params = new HttpParams().append('phone', phone).append('mail', mail);
return this.http.get('http://localhost:8000/Programme/extranet-api/public', { headers: this.headers, params: params })
.map(res => res.json())
.catch(err => {
throw 'error in source. Details: ' + err;
});
}

我的url在之后看起来是这样的

http://localhost:8000/Programme/extranet-api/public?更新=%7B%22参数%22:%22电话%22,%22值%22:%22dddddd%22,%22op%22:%22a%22%7D&更新=%7B%22参数%22:%22邮件%22,%22值%22:%22%22,%22操作%22:%22a%22%7D&cloneFrom=%7B%22更新%22:null,%22cloneFrom%22:null,%22编码器%22:%7B%7D,%22映射%22:null%7D&编码器=%7B%7D&map=空

我的问题在哪里?

您需要使用URLSearchParams:

let params = new URLSearchParams();
urlSearchParams.append('phone', phone);
urlSearchParams.append('mail', mail);
return this.http.get('http://localhost:8000/Programme/extranet-api/public?' + urlSearchParams.toString(), { headers: this.headers })
.map(res => res.json());
.catch(err => {
throw 'error in source. Details: ' + err;
});

您有什么问题?它也可能是服务器问题(不正确的资源路径或其他)。无论如何,Dhyey有一个使用URLSearchParams的好建议,尽管让http.get处理params转换(就像你在代码中所做的那样)是一个更好的主意,比如:

return this.http.get('http://localhost:8000/Programme/extranet-api/public', 
{ headers: this.headers, search: myUrlSearchParams })...;

最新更新