http.get()
请求网址请先看看我的代码。
角色服务
let versionsearch ="&";
let strweeksearch="#";
this.http.get(this.apiUrl + 'GetVersionInfo?vehicleVersion=' + versionsearch + '&structureWeek=' + strweeksearch,
{ withCredentials: true })
.map(responce => <CoCApiResponse[]>responce.json())
.catch(error => {
return Observable.throw(error);
});
Web API
[HttpGet]
public CoCApiResponse GetVersionInfo([FromQuery]string vehicleVersion, [FromQuery]string structureWeek)
{
//code
}
我在Web API中有一个Get方法,它有两个字符串参数。我只是通过传递这些参数的查询字符串从angular http
服务调用rest服务。但特别是如果我在查询字符串中传递值为#
或&
,我会遇到以下问题。
使用#
:
如果在查询字符串中传递#
,API网址将会中断。
但是我从这次讨论中得到了一些想法:Passing a pound sign as a value in the query string of a URL, using Angular
所以我这样做是为了将角色服务中的#
替换为%23
strweeksearch.replace(/#/g, '%23');
。
使用&
:
API URL会将其视为3个参数,例如
apiurl versionsearch =安培;?&安培; strweeksearch = 123455
因此,Web API方法参数vehicleVersion
始终为NULL
。
如何实现这一目标?我不想将每个特殊字符替换为
reserved characters
。我需要在http.get()
中接受每个特殊角色。如何在 Angular 或Web API中处理此问题?
答案 0 :(得分:0)
答案 1 :(得分:0)
您要在get()中添加版本搜索,并在&#39;&amp;&#39;附加字符串。同样,这就是它认为你通过了3个参数。
this.http.get(this.apiUrl + 'GetVersionInfo?vehicleVersion=' + versionsearch + 'structureWeek=' + strweeksearch,
{ withCredentials: true })
.map(responce => <CoCApiResponse[]>responce.json())
.catch(error => {
return Observable.throw(error);
});
尝试删除一个!