`
winson_wq
  • 浏览: 22260 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jQuery的$.getJSON乱码问题

阅读更多

和大家探讨一个JQuery的乱码问题:今天在了解

var data = {name:"myName",pwd:"password"};
$.getJSON(url, data, function(json){ 
  // add code here
});

 这个方法的时候,发现在Java后台下列方法得到了乱码。

String name= request.getParameter("name");

 

我做了下列集中尝试:

  • 利用javascript中的encodeURI方法进行中文编码
    var info = jQuery.param(data);//或者
    var info = "&aname=" + encodeURI(aName);//等等
     都无法解决。
  • 上网搜索的山寨方法
    var info = "&aname=" + encodeURI(encodeURI(aName));//等等
    首先在javascript里面做两次编码,然后再Java中解码一次获得
    String name = URLEncoder.encode(request.getParameter("name"));
     依然不成功,发现两次编码以后,已经不成样子了,至少我没有成功。
  • OK,依然找不到方法从后台读出JSON对象,只有另想办法了。结果只有用 
    $.post(url, data, function(json){ 
        // add code here  
    },"json");
    //查了一下API 
    //post方法的type支持 json 类型
    $.ajax({
      dataType: "json"
    });
    //也顺便提下$.ajax方法的返回类型也支持json类型
    //两者都可以用作获得JSON对象
      结果就用post代替了,发此文章只是希望有人能解答$.getJSON乱码问题,谢谢,多多交流。
分享到:
评论
8 楼 seeYourEye 2014-07-23  
4楼说的方法可以,但不太适于项目,只适合个别表单的情况;5楼说的当然不对,楼主的问题是request得到的乱码;2楼伟大,正解!!!!
7 楼 背着家走 2012-09-12  
qianzai 写道
这个  你把你的文件  用 工具 打开然后  点击另存为  弹出对话框, 现在的格式 应该是ANSI  将编码改为是 utf-8  问题可以解决  

正解! 我就遇到过这种情况
6 楼 qianzai 2012-07-10  
这个  你把你的文件  用 工具 打开然后  点击另存为  弹出对话框, 现在的格式 应该是ANSI  将编码改为是 utf-8  问题可以解决  
5 楼 mikkjl 2010-08-02  
后台 构造JSON时 response.setContentType("application/json;charset=UTF-8"); 只要设置了 响应编码  就不会出现任何问题
4 楼 lovefly_zero 2009-06-17  
其实作者离成功只一步之遥了,只需在后面添加字符编码即可,具体操作如下:

前台修改为
var data = {name:encodeURI($("#myName").val(),"utf-8")},pwd:"password"};  

后台修改为
String name=URLDecoder.decode(request.getParameter("name"),"utf-8");

3 楼 wangjavablog 2009-06-02  
$.post(url, data, function(json){   
    // add code here    
},"json");  
//查了一下API   
//post方法的type支持 json 类型  
$.ajax({  
  dataType: "json"  
});  

好用
2 楼 zhwm631wj 2009-05-03  
如果 tomcat 在server.xml 中 <Connector 中添加 URIEncoding="UTF-8" (看你文件头编码设置) 即可
1 楼 yjrl 2009-05-03  
以上问题解决了没?

相关推荐

    Json操作及中文乱码解决方案

    在前端,jQuery的`$.getJSON`已经做了很好的处理,而在后端,如Java中,Gson库也可以有效地管理中文字符。对于其他编程语言和库,原理相同,都需要关注字符编码的设置。在实际开发中,遇到乱码问题时,检查请求和...

    jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

    当我们用javascript写ajax程序写得很“开心”的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码问题,更幸福的是你的js代码将大大地...

    以\"对象\"方式接收json数据.(解决乱码问题)

    例如,如果你在使用jQuery(压缩包文件中的`jquery.js`),可以使用`$.ajax()`或`$.getJSON()`方法,它们默认处理UTF-8编码。如果需要自定义编码,可以通过配置`xhrFields`或`contentType`参数来实现。 ```...

    Jquery通过JSON和Struts的Action交互[参照].pdf

    3. 前端页面引入jQuery库,使用`$.getJSON`或`$.ajax`发起请求。 4. 处理服务器返回的JSON数据,完成前端展示或其他操作。 这种交互方式简化了前后端的数据交换,提高了应用的响应速度和用户体验。同时,由于使用了...

    jquery ajax post提交数据乱码

    "jquery ajax post提交数据乱码"这个问题主要是由于不同浏览器对数据编码方式的处理不一致造成的。当我们在Firefox下测试时,一切正常,但在Chrome或IE内核的浏览器上,用户可能会遇到乱码问题。这通常与页面的字符...

    json 中文乱码解决方案

    例如,在jQuery中可以通过`$.ajax({dataType: 'json', ...})`指定数据类型为JSON并自动处理编码转换。 ##### 3. 字符串编码转换 - 在服务器端,可以使用Java的`new String(bytes, "UTF-8")`来进行编码转换。 - 在...

    jquery ajax跨域解决方法(json方式)

    当$.getJSON()方法调用时,它会自动将返回的JSON数据转换为JavaScript对象,这使得处理变得更加方便。 ### 实际使用示例 文章中给出的示例展示了如何在实际开发中应用$.getJSON()方法来请求跨域数据。 ```...

    jQuery页面刷新(局部、全部)问题分析

    而$.ajax()的上层封装方法,如load(), $.get(), $.post(), $.getScript()和$.getJSON()等,都提供了不同程度的便利性和简化。开发者需要根据实际需求来选择合适的jQuery Ajax方法来实现页面的局部或全部刷新。

    jquery中页面Ajax方法$.load的功能使用介绍

    针对提到的Ajax方法$.load乱码问题,如果服务器端响应的数据编码与客户端预期的编码不一致,就可能会出现乱码。解决这个问题的方法是确保服务器端和客户端页面使用相同的编码格式。在上述内容中,指出了服务器端和...

    js与jQuery实现的兼容多浏览器Ajax请求实例.docx

    jQuery简化了Ajax的使用,提供了$.ajax()、$.get()、$.post()等高级接口。下面以$.ajax()为例,介绍其使用方法: ```javascript function Text_ajax() { $.ajax({ type: "GET", url: "ResponseText.aspx", ...

    Jquery的Ajax技术使用方法

    **注意**:在使用$.get()和$.post()时,如果将数据放在URL后面,可能会导致数据丢失或者编码问题,因此推荐使用data参数传递数据。同时,回调函数中的参数顺序可以调整,但建议按照JQuery文档推荐的方式使用,以避免...

    笔试题(JavaEE).doc

    9. jQuery的ajax处理方法:$.get()和$.post()分别对应GET和POST请求,$.getJSON()用于获取JSON格式数据。 10. JSON的语法规则:JSON是一种轻量级的数据交换格式,基于JavaScript语法,但更有限制,如key必须是字符...

    Django返回json数据用法示例

    首先,我们来看前端部分,这里我们使用jQuery的`$.getJSON`方法来发送GET请求。这个方法接受三个参数:请求的URL、一个可选的设置对象和一个回调函数。在回调函数中,我们可以处理接收到的JSON数据。以下是一个基本...

    jQuery解析json数据实例分析

    本例中利用jQuery的$.get()方法发起异步AJAX请求,获取Servlet返回的JSON格式数据。获取到数据后,通过eval()函数将字符串转换为JavaScript对象,然后通过$.each()方法遍历JSON数组中的每一个对象。 5. jQuery对象 ...

    半个小时学json(json传递示例)

    在这个例子中,前端使用jQuery库的`$.getJSON()`函数发送一个AJAX请求到PHP脚本`a.php`,并传递了三个参数`id`、`name`和`gender`。`encodeURI()`函数用于对`name`参数进行编码,以确保特殊字符(如中文)能在URL中...

    ajax回调函数接收后台传输的数据如何设置编码方式.pdf

    在jQuery中,通常使用$.get()或$.ajax()方法来发送异步请求。以下是一个简单的$.get()用法,它向后台传递参数并调用后台方法: ```javascript $.get('&lt;%=basePath%&gt;/peronalSetting/peronalSettingSaveAll.do', { ...

    jq_base64.js

    jQuery Base64库提供两个主要方法:`$.base64.encode()`和`$.base64.decode()`,分别用于进行Base64编码和解码。 - 编码: ```javascript var encodedData = $.base64.encode("Hello, World!"); ``` - 解码: ```...

    JQuery发送ajax请求时中文乱码问题解决

    在使用JQuery进行ajax请求时,经常会发生中文乱码的情况,这个问题主要发生在请求数据的编码和服务器端对请求数据的解码不一致时。为了解决这个问题,需要确保从前端发出的请求数据以及服务器端对请求数据的处理都...

    jquery中文乱码的多种解决方法

    当使用jQuery的`$.ajax`方法发送请求时,如果请求数据中含有中文字符,则可能会导致接收的数据出现乱码。这主要是因为前后端之间的编码不一致所引起的。 #### 三、问题分析与解决方法 下面我们将针对不同的情况,给...

Global site tag (gtag.js) - Google Analytics