`
屌丝学Java
  • 浏览: 29813 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax发送请求到Spring MVC的Controller 返回json字符串乱码

    博客分类:
  • Java
 
阅读更多
copy地址:http://blog.csdn.net/dangerous_fire/article/details/25904225

第一种解决方法,适用所有情况
因为在controller中返回json用了@ResponseBody,而spring源码中@ResponseBody 的实现类发现其默认的编码是 iso-8859-1,而项目用的编码为utf-8,所以传中文会出现乱码,解决办法是不用注解,直接用response,转换编码。

@RequestMapping("/modifyconfiginput")  
@ResponseBody  
public String modifyinput( @RequestParam(value="id") String id,   
                           @RequestParam(value="timestamp") String timestamp,   
                           HttpServletResponse response ) throws Exception {   
    ImmediateConfig ic = this.immediatePictureService.findImmediateConfig(id);   
    String json = "["+"{name:'"+ic.getName()+"',classId:'"+ic.getProductClass().getClassId()+"',pyFile:'"+ic.getPyFile()+"'}]";   
    System.out.println("json:"+json);   
    //return json;   
    // 设置response的ContentType解决中文乱码   
    response.setContentType("text/html;charset=UTF-8");   
    response.getWriter().print(json);   
    return null;   
} 


第二种解决方法,可用于新版本的spring
@RequestMapping(value="/ajaxCounterList", produces = "application/json; charset=utf-8")  

注意:在IE浏览器中必须声明返回的类型,如下
@RequestMapping(value="/upload/upload",produces="text/html;charset=UTF-8")
或者用第一种方法,但也要声明为 text/html 类型,否则IE无法识别,会报错误


我是橄榄绿
分享到:
评论

相关推荐

    Newtonsoft.Json C# MVC中json对象json字符串处理2.0版3.5版4.0版4.5版(历史版本全)

    在.NET框架中,尤其是在MVC(Model-View-Controller)架构中,它是一个不可或缺的工具,用于序列化和反序列化JSON对象,将C#对象转换为JSON字符串,以及将JSON字符串解析回C#对象。 在C# MVC项目中,JSON处理通常...

    Spring3 MVC Ajax with JSON

    这个项目提供的示例工程应该包含了一个工作流程的完整实例,从Ajax请求到Spring MVC的处理,再到JSON响应的返回,帮助开发者理解并掌握这一技术栈的使用。通过深入研究和实践,你将能够熟练地在自己的项目中应用这些...

    四. Spring MVC 3 支持json及 常见错误解决

    在Spring MVC中,JSON主要用于将Java对象转换为JSON字符串,然后通过HTTP响应发送给客户端,或者将客户端发送的JSON数据转换为Java对象。 **一、Spring MVC 3中的JSON支持** 1. **配置依赖库**:为了处理JSON,你...

    spring mvc json&&jackson jquery js

    Spring MVC中的`@ResponseBody`注解可以将方法的返回值直接转换为JSON格式发送到客户端,而`@RequestBody`则可以将请求体中的JSON数据解析成Java对象。 **Jackson** Jackson是Java中广泛使用的JSON库,它可以高效地...

    处理ajax返回带有换行的json数据

    如果从Ajax请求中接收到的JSON数据包含了未转义的换行符,这将导致解析错误,因为JavaScript会认为这些换行符破坏了对象或数组的结构。 处理这种情况的方法有几种: 1. **服务端处理**:理想情况下,服务端应该在...

    json 中文乱码解决方案

    **假设场景**:一个简单的Java Web应用,使用Spring MVC框架,前端使用jQuery发起Ajax请求获取包含中文的JSON数据。 **步骤**: 1. **配置前端页面**: ```html <!DOCTYPE html> ...

    spring-mvc-jsonview源代码

    当返回类型为@RequestBody或@ResponseBody时,Spring MVC会自动将返回的对象转换为JSON,发送到客户端。 三、源代码分析 1. pom.xml:项目依赖管理文件,包含了Spring MVC、Jackson库和其他相关依赖。例如,添加...

    spring mvc 使用jquery 传json值给Controller时需要解决的问题

    在Spring MVC中,Controller的方法参数需要是`@RequestBody`注解的,这样Spring MVC会尝试将接收到的JSON数据转化为Java对象。 2. **Content-Type设置** 要使JSON数据被正确处理,必须设置HTTP请求的`Content-...

    spring mvc+ajax

    在Spring MVC中集成Ajax,通常会在前端使用JavaScript库如jQuery来发送Ajax请求。例如,我们可以创建一个AJAX函数,通过`$.ajax()`或`$.getJSON()`等方法向后台发送异步请求。这些请求通常带有特定的URL和参数,对应...

    使用Ajax向PHP服务端发送请求并返回JSON数据

    当`readyState`变为4(表示请求已完成),且`status`为200(表示请求成功)时,我们将接收到的JSON字符串解析成JavaScript对象,并进行处理。 接下来,我们通过`open`方法打开到服务器的连接,`POST`表示我们要发送...

    PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠

    当从POST请求中接收到JSON字符串时,例如`$_POST['json']`,可以使用`stripslashes()`来去除字符串中的转义字符。示例如下: ```php $str = stripslashes($_POST['json']); ``` 之后,可以使用`json_decode()`函数...

    一个实用了spring mvc和ajax异步请求的例子

    在这个例子中,前端向'/api/posts'发送GET请求,Spring MVC的Controller收到请求后,查询数据库并返回JSON格式的文章列表。前端的success回调函数接收到数据后,将文章标题添加到页面的列表中。 总结起来,这个"一...

    mvc-ajax.rar_spring mvc

    - `AjaxController.java`:实现Ajax请求处理的Controller。 - `UserService.java`和`UserServiceImpl.java`:服务层接口和实现,负责账号业务逻辑。 - `Account.java`:账号模型类。 - `js`目录下的JavaScript文件:...

    ajax向springmvc传递json

    3. 数据序列化与反序列化:在发送请求时,需要将JavaScript对象转换为JSON字符串,这可以通过JSON.stringify()方法实现。而在服务器端接收到JSON数据后,需要将其反序列化为Java对象,Spring MVC提供了@RequestBody...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    spring3-miniweb.rar_spring json_spring3_spring3 mvc

    现在,当客户端发送一个包含JSON数据的POST请求到"/save"端点时,Spring MVC会自动将JSON解析为`User`对象,然后调用`save`方法。方法执行完毕后,返回的字符串会被自动转换为JSON并发送回客户端。 这个压缩包...

    jQuery+get/post+Ajax+Json

    4. JSON字符串与JSON对象的转换:在JavaScript中,我们可以使用`JSON.stringify()`方法将JavaScript对象转换成JSON字符串,以便通过Ajax发送;而`JSON.parse()`方法则用于将接收到的JSON字符串解析成JavaScript对象...

    ThinkPHP的success并不跳转页面,而是直接输出json字符串的原因.zip解决ThinkPHP的success并不跳转页面,而是直接输出json字符

    总的来说,ThinkPHP的`success`方法不跳转页面而是输出JSON字符串,是因为它被设计用来处理API和AJAX请求,而这些请求通常需要返回可解析的数据,而不是执行页面重定向。理解和调整你的请求类型以及控制器的响应机制...

    JQuery发送Ajax请求Struts2,并返回JSON的例子

    本示例将探讨如何利用jQuery的Ajax功能向Struts2框架发送请求,并以JSON格式接收响应数据。下面我们将详细讨论这些技术以及它们在实际应用中的交互过程。 首先,jQuery是一个轻量级的JavaScript库,它简化了DOM操作...

    Spring MVC 中 AJAX请求并返回JSON的示例

    本文将深入讲解如何在Spring MVC中通过AJAX发送请求,并返回JSON(JavaScript Object Notation)数据。 首先,AJAX请求通常由JavaScript代码触发。在提供的示例中,我们看到一个名为`saveSynchronizedVcHorse`的...

Global site tag (gtag.js) - Google Analytics