我正在尝试使用一些参数进行HTTP调用。 param vsLoginToken的值为'0D + 92VVcZNFde + AWbHA'。
let params: URLSearchParams = new URLSearchParams();
params.set('tenantId', tenantId);
params.set('branchId', branchId);
params.set('vsLoginToken', vsLoginToken);
this._http.get(url, { search: params }).map(res => res.json()).
catch(error => Observable.throw(error.json().error || 'Server error'));
但是当我在服务器端处理这个参数时,值为'0D 92VVcZNFde AWbHA'。正如您所看到的,两个'+'字符被替换为空格。谁可以帮我这个事?感谢
答案 0 :(得分:0)
+
符号是URL中的特殊字符,因为它替换了空格。您需要对其进行URL编码,然后将其转换为%2B
。
答案 1 :(得分:0)
在URLSearchParams的官方文档中,它明确说明了以下内容
These are the characters that are not encoded: ! $ \' ( ) * + , ; A 9 - . _ ~ ? /
官方文档还包括如何在必要时使用queryencoder。 请参阅https://angular.io/docs/ts/latest/api/http/index/URLSearchParams-class.html