首页 > 解决方案 > Angular4 HttpClient 将参数转换为单个字符

问题描述

我正在使用 HttpClient 创建一个 api 调用,如下所示:

let headers = new HttpHeaders()
    .append("X-Requested-With", "XMLHttpRequest")
    .append("Cache-Control", "no-cache, no-store, must-revalidate")
    .append("Pragma", "no-cache")
    .append("Expires", "0");

let params = new HttpParams()
    .append("status", "O")
    .append("status", "D")
    .append("status", "B")
    .append("user", "true");

let requestOptions = { params: params, headers: headers };

return this.httpClient.get("api/Batch", requestOptions)
    .pipe(catchError(this.handleError));

当我在调试器中查看这个 requestOptions 对象时,参数看起来很好,但在 chrome 开发人员工具的网络选项卡中,由于某种原因,url 看起来像这样:

http://localhost:50347/_QDX/api/Batch?0=s&1=t&2=a&3=t&4=u&5=s&6==&7=O&8=%26&9=s&10=t&11=a&12=t&13=u&14=s&15==&16 =D&17=%26&18=s&19=t&20=a&21=t&22=u&23=s&24==&25=B&26=%26&27=s&28=t&29=a&30=t&31=u&32=s&33==&34=O&35=%26&36=s&37=t&38= a&39=t&40=u&41=s&42==&43=D&44=%26&45=s&46=t&47=a&48=t&49=u&50=s&51==&52=B&53=%26&54=u&55=s&56=e&57=r&58==&59=t&60=r&61 =u&62=e&63=%26&64=u&65=s&66=e&67=r&68==&69=t&70=r&71=u&72=e&73=%26&74=g&75=u&76=i&77=d&78==&79=7&80=6&81=a&82=d&83=d&84 =3&85=2&86=0&87=d&88=a&89=e&90=1&91=4&92=c&93=0&94=f&95=a&96=2&97=b&98=0&99=6&100=c&101=b&102=e&103=a&104=8&105=1&106=3&107=4&108=7&109=0&110=b

我对造成这种情况的原因一无所知。它将参数中的每个字符拆分并按位置将它们放入查询字符串中。任何帮助,将不胜感激

标签: angulartypescriptangular-httpclient

解决方案


推荐阅读