大家好我在Angular上创建HTTP请求,但我不知道如何添加url参数(查询字符串) .
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
现在我的StaticSettings.BASE_URL就像一个没有查询字符串的url,如:http://atsomeplace.com/但是我希望它是http://atsomeplace.com/?var1=val1&var2=val2
哪个var1和var2适合我的Http请求对象?我想像对象一样添加它们 .
{
query: {
var1: val1,
var2: val2
}
}
然后只需要Http模块就可以将其解析为URL查询字符串 .
9 回答
第5版
使用Angular 5及更高版本,你 DON'T have to use HttpParams . 您可以直接发送您的json对象,如下所示 .
请注意,数据值应为字符串,即;
{ params: {limit: "2"}}
版本4.3.x
从 @angular/common/http 使用 HttpParams, HttpClient
可能会帮助一些!
HttpClient 方法允许您在其中设置 params 选项 .
您可以通过从@ angular / common / http包导入 HttpClientModule 来配置它 .
之后,您可以注入 HttpClient 并使用它来执行请求 .
对于版本4之前的角度版本,您可以使用 Http 服务执行相同的操作 .
Http.get 方法接受一个实现RequestOptionsArgs作为第二个参数的对象 .
该对象的 search 字段可用于设置字符串或URLSearchParams对象 .
一个例子:
Http 类的文档有更多详细信息 . 它可以找到here和一个工作示例here .
编辑角度> = 4.3.x
HttpClient与HttpParams一起被引入 . 下面是一个使用示例:
(老答案)
编辑角度> = 4.x
requestOptions.search
已被弃用 . 请改用requestOptions.params
:原始答案(Angular 2)
您需要导入
URLSearchParams
,如下所示然后构建您的参数并按如下方式生成http请求:
我的例子
我的方法
在我的组件中
邮差
如果您打算发送多个参数 .
组件
服务
并继续你的http请求@ethemsulan如何做 .
服务器端路由
Angular 6
您可以使用params传入get调用所需的参数:
其中x = {property:“123”} .
至于记录“123”的api函数:
如果您有installed jQuery,我会
npm i jquery --save
并包含在apps.scripts
中angular-cli.json
您可以使用官方文档中的Url Parameters .
示例:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })