javascript - 如何在 Angular 7 中对包含特殊字符的查询参数进行编码?

标签 javascript angular http angular7 urlencode

我正在尝试在 Angular 7 中对查询参数值进行编码。但是当我的查询参数值包含任何特殊字符时,我收到 400 Bad Request 状态代码

请求 URL 失败: http://localhost/api/67/cardvalues?parentcardvalues=STONE&parentcardvalues=STONE%20AGE

但是,当我的查询参数值不包含任何特殊字符时,我会收到 200 OK 状态代码。

成功请求URL: http://localhost/api/67/cardvalues?parentcardvalues=STONE&parentcardvalues=STONE

预期的请求 URL 必须类似于 http://localhost/cardvalues?parentcardvalues=VALUE1&parentcardvalues=VALUE2

下面是我的代码,

parentcardvalues=["STONE","STONE AGE"]

let myparams = new HttpParams();

    if(parentcardvalues.length != 0)
       parentcardvalues.forEach((value) => { 

myparams = myparams.append( 'parentcardvalues',   encodeURIComponent(value) );

});

 this.http.get(this.baseUrl + 'api/67/cardvalues', {params: myparams});

Swagger 规范是,

curl

curl -X GET "http://localhost/api/cardvalues?parentcardvalues=STONE&parentcardvalues=STONE%20AGE" -H  "accept: application/json"

请求网址

http://localhost/api/cardvalues?parentcardvalues=STONE&parentcardvalues=STONE%20AGE

最佳答案

您可以使用以下方式解码您的参数:

decodeURIComponent(encodedURI_string)

更多信息here

关于javascript - 如何在 Angular 7 中对包含特殊字符的查询参数进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55524897/

相关文章:

javascript - Rails 3 中的无尽页面?

http - 在 GO 中重新组合大块 zip 下载

json - 无法从 Angular InMemoryDbService 中得到任何东西

angular - 在定义 NgModule 时使用外部 JSON 文件的值

javascript - XMLHttpRequest 错误 - "No ' Access-Control-Allow-Origin' header 出现在请求的资源上。”

c - 如何模拟网页浏览器与https服务器交互

javascript - 如何按顺序执行 jQuery AJAX 调用?

javascript - 如何设置mousemove更新速度?

javascript - 如何在node.js中进行FFT?

angular - Angular 教程中的 pipe 和 tap 方法是什么?