AJAX:通过ajax获取的编码数据

Posted

技术标签:

【中文标题】AJAX:通过ajax获取的编码数据【英文标题】:AJAX: encoding data obtained by ajax 【发布时间】:2015-07-20 06:01:29 【问题描述】:

我有一个包含 UTF-8 表的数据库。 Spring Web 应用程序连接到jdbc:mysql://localhost:3306/recr?zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&characterSetResults=utf8 的数据库 UTF-8 格式的所有 java 和 jsp 文件。在头jsp文件中有一个 <%@ page contentType="text/html; charset=UTF-8" %>

页面显示正确,但是当从服务器接收到Ajax数据时,显示为?????

javascript

$(document).ready(function() 
        $("#b2").click(function()
              $.ajax(
                  type: "GET",
                  url: "/recr/getRegion2",
                  data: 'id=3159',
                  contentType: "application/json; charset=UTF-8",
                  dataType: "json",
                  success: function (data) 
                        //var json = jQuery.parseJSON(data);
                        for(var x in data)
                            $('#region').append($('<option>').text(data[x]).attr('value', x));


                            

                        alert("Data: " + data);
                  ,
                  error: function (errormessage) 

                    alert("error" + errormessage);

                  
              );

控制器

@RequestMapping(value = "/getRegion2", method = RequestMethod.GET)
public @ResponseBody String getRegion2(@RequestParam("id") long id) throws Exception 
    System.out.println("пришло id : " + id);
    List<Region> regions = Facade.getRegionDao(dataSource).getAllRegionsByCountry(id);
    String res = JsonTransformer.transformRegionList(regions);
    return res;


可能是什么问题?

【问题讨论】:

您的jdbc 网址似乎包含&amp;amp;,这是不应该的。只是猜测。 &amp;amp; - 保留字符 xml,因此使用 &amp;amp; 【参考方案1】:

我找到了解决方案。 必须在控制器映射中指定。

@RequestMapping(value = "/getRegion2", produces="application/json; charset=UTF-8",method = RequestMethod.GET)

【讨论】:

以上是关于AJAX:通过ajax获取的编码数据的主要内容,如果未能解决你的问题,请参考以下文章

从 JSON 数据中获取产品 ID 并通过 AJAX 发布

通过 GET json 传递给 ajax jquery,

如何:正确使用PHP将数据编码成JSON格式,并通过jquery/ajax请求数据

通过 AJAX 发布时字符编码错误

ajax如何异步向后台获取字节流数据

ajax得到后台传过来的参数后乱码