javascript - 如何在 AngularJs $http.get 参数中包含 "="?

标签 javascript angularjs http typescript get

我试图在 AngularJs $http.get params 部分中包含一个等号。相关代码如下:

let eventsRequest = this.$http.get(EVENTS_ENDPOINT, {
        params: {
            type: type,
            filter: 'eventId=' + eventId
        }
    });

本质上,我希望将其序列化为:

?type=my_type&filter=eventId=this_event_id   

但是,当我运行以下代码时,“=”被替换为 %3d。我尝试用“/”转义,但没有成功。我也尝试查看 Angular 文档,但找不到任何东西。知道如何使这项工作吗?

最佳答案

这实际上是将保留字符 (=) 作为查询参数值传递时的预期行为。您的浏览器URL encodes这些字符,以便可以在接收端(您的服务器)解析查询参数。

您必须使用不同的机制来传递特定过滤器或反序列化服务器上​​的“等号”。

另一种定义 URL 方案的可能方法:

?type=my_type&filterEventId=this_event_id&filterLocationId=this_location_id

关于javascript - 如何在 AngularJs $http.get 参数中包含 "="?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39302176/

相关文章:

javascript - Highcharts 注释不呈现

javascript - 如何更新数组中的 map 对象?

javascript - Angularjs 指令

javascript - 我在 Angular JS 中调用数据抛出 json 但没有收到数据,为什么?

java - 异步 HTTP 客户端加载了太多数据?

python - 在 python 代码中使用 http.server 命令行

java - HttpURLConnection源码getHeaderField总是返回null?

javascript - 如何使 Bootstrap 弹出窗口在页面加载时出现一次

javascript - 表单操作不起作用

javascript - 为什么 Angular ng-hide 不能正确更新