如何在请求中发送“++”和“#”等特殊字符?
How to send special characters like "++" and "#" in a request?
我正在尝试使用 Typescript 从 Angular 应用程序向 ASP .NET CORE API 发出请求。
当我发送请求时,它会在 SQL 数据库中搜索是否有任何行具有该值。
问题是当我尝试向 Syntax = "C++"
或 "C#"
发送请求时,它只发送了这个:
/FindBySyntax?Syntax=C
而不是 /FindBySyntax?Syntax=C#
或 /File/FindBySyntax?Syntax=C++
示例:如果我尝试发送 "Javascript" 它的工作,它 returns 我 Syntax="Javascript"
.
的所有行
我想知道是否有办法在请求中发送“++”和“#”等特殊字符,我该怎么做?
selectSyntax(file: FileModel){
this.service.formData = Object.assign({}, file);
return this.http.get(this.service.BaseURL + '/File/FindBySyntax?Syntax=' + this.service.formData.Syntax)
.toPromise()
.then(res => this.service.list = res as FileModel[]);
}
您可以使用 Encode URI component
对所有特殊字符进行编码
const encodedSyntax = encodeURIComponent(this.service.formData.Syntax);
return this.http.get(this.service.BaseURL + '/File/FindBySyntax?Syntax=' + encodedSyntax)
您可能需要在服务器上使用所选语言Decode URI component的等价物
对其进行解码
this.service.formData.Syntax
的内容需要用encodeURIComponent()
JavaScript函数转换
可以找到关于 encodeURIComponent()
的文档 here. About the decoding on ASP .NET Core side here。
我正在尝试使用 Typescript 从 Angular 应用程序向 ASP .NET CORE API 发出请求。
当我发送请求时,它会在 SQL 数据库中搜索是否有任何行具有该值。
问题是当我尝试向 Syntax = "C++"
或 "C#"
发送请求时,它只发送了这个:
/FindBySyntax?Syntax=C
而不是 /FindBySyntax?Syntax=C#
或 /File/FindBySyntax?Syntax=C++
示例:如果我尝试发送 "Javascript" 它的工作,它 returns 我 Syntax="Javascript"
.
我想知道是否有办法在请求中发送“++”和“#”等特殊字符,我该怎么做?
selectSyntax(file: FileModel){
this.service.formData = Object.assign({}, file);
return this.http.get(this.service.BaseURL + '/File/FindBySyntax?Syntax=' + this.service.formData.Syntax)
.toPromise()
.then(res => this.service.list = res as FileModel[]);
}
您可以使用 Encode URI component
对所有特殊字符进行编码const encodedSyntax = encodeURIComponent(this.service.formData.Syntax);
return this.http.get(this.service.BaseURL + '/File/FindBySyntax?Syntax=' + encodedSyntax)
您可能需要在服务器上使用所选语言Decode URI component的等价物
对其进行解码this.service.formData.Syntax
的内容需要用encodeURIComponent()
JavaScript函数转换
可以找到关于 encodeURIComponent()
的文档 here. About the decoding on ASP .NET Core side here。