将对象转换为URL查询参数

3
1个回答

6
我不确定是否存在完全等价的替代方法,但是使用URLSearchParams类,它会自动处理编码问题。很遗憾它不能直接传递一个对象,所以你需要像以下这样做:
import { URLSearchParams } from '@angular/http';

let params = new URLSearchParams();
for (let key in someObj) {
  if (somObj.hasOwnProperty(key)) {
    params.set(key, someObj[key])
  }
}

如果您只需要字符串,可以调用params.toString()。否则,如果您想将其传递给Http请求,只需执行以下操作。
let options = new RequestOptions({ search: params });
http.get(url, options);

查询字符串将在GET请求中附加到URL中,在POST请求中,可以将其设置为请求体。
http.post(url, params);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接