ajax提交java后台接收参数出现乱码

1.现象:

前台ajax提交查询数据

  $.ajax({
              url: ‘bdmap/xx.action‘,
              data:para,
              dataType:‘json‘,
              contentType:"application/x-www-form-urlencoded",
              success: function(data){
                  if(data.success){
                      callback(data.data);

                  }
       }})
  1. Request URL:http://localhost:8083/bdmap/xx.action?name=%E9%80%9F%E5%BA%A6
  2. Request Method:GET

解决:这个ajax提交,默认以GET方法提交,提交前默认使用utf8编码格式进行编码,然后tomcat 应用服务器对url解码,默认使用ISO-8859-1格式解码,这时如果url中出现中文字符,编码和解码格式不对应就会出现乱码。

解决方法一:修改tomcat配置文件server.xml中对url解码的格式,对Connector标签设置URIEncoding="UTF-8",有两处需要修改。

<Connector port="8083" protocol="HTTP/1.1"        connectionTimeout="20000"      redirectPort="8443"  URIEncoding="UTF-8"/>

<Connector port="8039" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8"/>

解决方法二:前端使用post方法提交数据,ajax使用 type:‘POST’ 。

时间: 2024-10-27 00:02:07

ajax提交java后台接收参数出现乱码的相关文章

关于后台接收参数为null的问题之ajax--contentType

今天小编遇到一个关于后台接收参数为null的问题之ajax--contentType ? 答: ajax方法中的参数: contentType:发送至服务器时内容的编码类型,一般默认:application/x-www-form-urlencoded(适应大多数的场合) dataType:预期服务器返回的数据类型 有时候前台ajax向后台传数据的时候,能够进到后台,但是后台显示接受的参数为null,如果ajax没有问题,这个时候就要考虑后台在接收参数的时候使用的是什么注解.(@RequestPa

Ireport5.0.1 从java后台接收list集合

作为ireport新手,开始使用时总有很多问题,说一下今天解决的一个问题,就是怎样从java后台接收list集合并显示出列表. 1.首先要在主dataset中的Paramerters 中创建参数list(后台传map的key,如map.put("list",list1)),并修改其类型为java.util.Collection: 2.然后在其所在Detail中添加List(component)组件,将要显示的数据放置List框中: 3.右键List(component),选择 Edit

jquery ajax提交整个表单参数

转自 : http://www.jb51.net/article/35085.htm function submit(){ var formData=$("form").serialize();  $.ajax({  type: "POST",  url: "/index.aspx",  processData:true,  data:formData,  success: function(data){  $("#result&quo

Mvc后台接收 参数

@Html.TextAreaFor(m => m.Emps, new { @class = "easyui-validatebox", @style = "height:60px;width:300px;", @readonly = "readonly" }) @readonly = "readonly"这个只读属性 不能设置为其它 否则在后台接收不到 Mvc后台接收 参数

ajax提交的中文便会变成乱码

当网站页面不是utf-8编码时,ajax提交的中文便会变成乱码,解决方法如下:找到jquery.js里的contentType:application/x-www-form-urlencoded,将它改成contentType:application/x-www-form-urlencoded; charset=UTF-8就可以了.原因:未指定charset时,jquery使用ISO-8859-1,ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加

canvas图片base64编码后,ajax提交到后台

如题,直接上JS var imgData = canvas.toDataURL("image/png"); var data = imgData.substr(22); $.post('Gen', { 'data': data, 'remark': $('remark').val() } ,function(success) { $('#img1').src('data:image/jpeg;base64,' + success); } ); 后台C# string inputStr

ajax传递给后台数组参数方式

在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用到了批量更改数据状态功能. 在前台可以获取每条数据的ID,但是如何通过数组方式传递给后台? 通过昨晚的各种方式的调试,终于得出了答案! 在此作为备忘. 目前有两种方式可行: 方式一 前台代码: [javascript] view plaincopy // 方式一 var _list = {}; for (var i = 0; i < checkedRow.length; i++) { _list["selec

ajax与java后台交互

创建的java web项目 前端页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":

base64编码上传图片java后台接收实例

原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64编码的String字符串,后台接收字符串以后先进行base64解码 .decodeBuffer(),转换成二进制编码,然后使用字节输出流FileOutputStream()将文件保存到指定目录下. 报下面的错误 Error parsing HTTP request header Note: furt