我正在尝试发送一条消息,该消息是一个包含图标的字符串,该图标是html元素,但是当我在Web服务url中传递它时,它将删除所有特殊字符。有没有办法在不删除这些特殊字符的情况下将其保留为字符串?
我要传递的字符串是
var body= "hello <img src="/assets/smile.png">";
Web服务网址为:
return this.http.get(' http://localhost:44435/Projet/AddMsessage?body=' +body+ '&idSender=' + idSender + '&idDiscussion=' + idDiscussion);
但是当我执行Web服务时,它变成了这样的问题:
http://localhost:44435/Projet/AddMsessage?body=halo%20%3Cimg%20src%3D%22%2Fassets%2Fsmile.png%22%3E%20&idSender=1&idDiscussion=1
它删除<,/,“,>字符
答案 0 :(得分:0)
您应该使用HttpClient#get
的第二个参数来传递URL参数。有关更多信息,请参见the official documentation。
您的代码变为:
return this.http.get('http://localhost:44435/Projet/AddMsessage', {
params: new HttpParams()
.set('body', body)
.set('idSender', idSender)
.set('idDiscussion', idDiscussion)
});
如果不这样做,如果您的参数值包含诸如?
或&
之类的字符,则它们会弄乱您的URL,因为Angular无法知道每个参数在哪里“停止”
但是,对特殊字符进行url编码是完全正常的。 <
变成%3C
,依此类推。