正在做的一个项目需要富文本功能,提交的时候使用‘encodeURIComponent’方法做了转码,但是发送请求的时候浏览器会自动解码呢?
已经将<p>会议描述</p>
转换成了%3Cp%3E%E4%BC%9A%E8%AE%AE%E6%8F%8F%E8%BF%B0%3C%2Fp%3E
浏览器请求显示发送的还是<p>会议描述</p>
请问为什么会自动转码呢?
更新
params.des=encodeURIComponent('<p>会议描述</p>');//值为%3Cp%3E%E4%BC%9A%E8%AE%AE%E6%8F%8F%E8%BF%B0%3C%2Fp%3E
向后台发送请求
//这个是我们自己封装的方法,使用的是nodejs,我看了下源码提交的时候里面没有编码的操作
BaseJs.ajaxV3Proxy(meetingTask.path+'url',params, function(json) {
if(json == 'OK'){
that.$Message.success('保存成功!');
that.loading=false;
that.$router.push({name:'meetList'});
}
});
上面是比较简单的,可以保存成功,加上背景色就500错误了
比如:
<p><span style="color: rgb(230, 0, 0);">会议描述</span></p>
因为默认的 content-type 是
application/x-www-form-urlencoded
,浏览器会把你要 post 的内容转义。你可以换成别的类型,比如用 FormData 或者application/json
、text/plain
之类的。