Tomcat下前端使用vue-resource向后台servlet发送数据中文乱码
2017-05-22 20:14
881 查看
1. 问题描述
由于当前在尝试使用vue.js捣鼓自己的一些小应用,为了vue的纯洁性,使用了vue-resource替代Jquery Ajax向后台servlet发送异步请求,平时一直用ajax的时候好好的,结果这下使用vue-resource竟然出现了请求参数中文乱码的情况。2. 问题分析
html页面设置了<meta charset="utf-8">
发送的是post请求
servlet过滤器配置了setCharacerEncoding(“utf-8”)
firebug下查看请求头信息发现明明是post请求,却把参数拼接在请求头状态行的url后面(但是实际上地址栏url后面并没有出现参数)
3. 解决
上面条件全部满足,但是中文仍然是乱码(不是问号)后来得到一个解决方案是去配置Tomcat目录下/conf/server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
这一行中添加
URIEncoding="utf-8"属性,然后就没有中文乱码了。
但是纳闷的是,自从使用Tomcat以来,就从来没有动过这个文件,一直都是好好的没有中文乱码的情况,直到使用了vue-resource来代替Jquery Ajax才出现。
4 . 最终解决
后来发现tomcat一旦重启就会还原server.xml文件,这样一来上面的方法肯定就不可取了。最后发现问题还是出在vue-resouce的使用方法上,几乎搜索到的所有vue-resource的文档都是这么写的:option对象的各属性及含义
参数 | 类型 | 描述 |
---|---|---|
url | string | 请求的URL |
method | string | 请求的HTTP方法,例如:’GET’, ‘POST’或其他HTTP方法 |
body | Object,FormDatastring | request body |
params | Object | 请求的URL参数对象 |
headers | Object | request header |
timeout | number | 单位为毫秒的请求超时时间 (0 表示无超时时间) |
before | function(request) | 请求发送前的处理函数,类似于jQuery的beforeSend函数 |
progress | function(event) | ProgressEvent回调处理函数 |
credientials | boolean | 表示跨域请求时是否需要使用凭证 |
emulateHTTP | boolean | 发送PUT, PATCH, DELETE请求时以HTTP |
emulateJSON | boolean | 将request body以application/x-www-form-urlencoded content type发送 |
//我习惯用完整写法 vm.$http({ url : 'xx/xx/', method : 'post', params : someData, emulateJSON : true }).then((response) => { console.log(response); },(response) => { alert("请求发生错误"); }).catch(function(response){ alert("发生异常"); });
这样虽然是post方法,但是参数还是会出现在url上,正确做法是放在data属性上……
相关文章推荐
- Spring 后台向前端传送json数据中文乱码
- 解决使用FusionCharts以后从后台获取数据中文乱码的问题
- 使用myeclipse插入数据到mysql 出现中文乱码|utf8乱码解决方案[适合tomcat部署的jsp应用]
- SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码
- 【技术贴】servlet传参|前台传参含中文符号等 tomcat乱码 java后台接收乱码终极解决方
- 使用Struts 2框架、ajax提交中文数据在后台乱码的问题
- Java后台使用get方式远程跨域请求,返回数据为中文乱码解决方法
- Android客户端页面提交数据到tomcat的servlet插入mysql中的信息表遇到的中文乱码问题
- java ajax发送数据到后台,中文乱码
- vue-cli 中 使用vue-resource 输出后台数据
- 关于使用Ajax传中文数据到后台接受乱码问题 data:{"dictype":"客户信誉度"}
- 【技术贴】servlet传参|前台传参含中文符号等 tomcat乱码 java后台接收乱码终极解决方
- 使用Struts 2框架、ajax提交中文数据在后台乱码的问题
- 关于web前端发送的包含汉字的信息在后台servlet中乱码问题解决
- 使用source命令向数据库写入数据中文乱码的解决方案
- 使用AJAX传递中文参数,在后台接受出现乱码问题
- ExtJs使用Array向后台发送大量数据
- 使用filter(过滤器)处理JSP和servlet的中文乱码
- jsp向后台传中文,tomcat和weblogic下中文乱码解决方法
- 使用5502自带的UART口发送数据乱码的问题