如何用angular的URL编码对象发出get请求?

时间:2019-06-17 14:00:24

标签: ajax angular get urlencode

我有一个复杂的对象:

{
valueA:'a',
value_array: {
   'v': {value:1, value:2},
   'v2': {value:1, value:2},
 }
}

我如何在get请求中将其作为angular的http服务中的url编码的字符串发送?

结果应该是代表嵌套json对象的查询字符串,类似于此:

api_call?value_list[585588558][sim_type]=existing&value_list[585588558][secondary_sim_type]=new&value_list[587788778][sim_type]=existing

谢谢, 雅伦

4 个答案:

答案 0 :(得分:0)

在这种情况下,您根本不应该使用GET,而是尝试使用post

答案 1 :(得分:0)

您可以将对象转换为字符串,然后将其发送到服务器,然后再次将其转换为对象。示例-

JSON.stringify(objectName);

JSON.parse(objectString);

答案 2 :(得分:0)

使用angular的HttpUrlEncodingCodec类对URL参数进行编码或解码是一种方法。

https://angular.io/api/common/http/HttpUrlEncodingCodec

答案 3 :(得分:0)

也许有一种方法可以通过angular类实现,但是我设法通过外部npm软件包-'qs'来解决它。 我先安装软件包,然后:

import * as qs from 'qs';
const qsParams = qs.stringify(nestedJSON);