如何在请求中发送“++”和“#”等特殊字符?

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