mui.ajax中文乱码

估计这是个bug:

  1 //mui 的 ajax 中文乱码
  2             var url = ‘http://api.juheapi.com/japi/toh?key=1f26c107d8864bdfb98202bc314ce0d5&month=11&day=25&v=2.0‘
  3             mui.ajax(url,{
  4                 dataType:‘json‘,
  5                 type:‘post‘,
  6                 timeout:5000,
  7                 success:function(data){
  8                     console.log(data);
  9                     var result = JSON.stringify(data.result);
 10                     console.log(result);
 11                 },
 12                 error:function(xhr,type,errorThrown){
 13                     console.log(type);
 14                 }
 15             });
 16
 17             mui.plusReady(function(){
 18                 // 此种方式不会 中文乱码,
 19                 function a(){
 20                     var xhr = new plus.net.XMLHttpRequest();
 21                     xhr.onreadystatechange = function () {
 22                         switch ( xhr.readyState ) {
 23                             case 0:
 24                                 alert( "xhr请求已初始化" );
 25                             break;
 26                             case 1:
 27                                 alert( "xhr请求已打开" );
 28                             break;
 29                             case 2:
 30                                 alert( "xhr请求已发送" );
 31                             break;
 32                             case 3:
 33                                 alert( "xhr请求已响应");
 34                                 break;
 35                             case 4:
 36                                 if ( xhr.status == 200 ) {
 37                                     alert( "xhr请求成功:"+xhr.responseText );
 38                                 } else {
 39                                     alert( "xhr请求失败:"+xhr.readyState );
 40                                 }
 41                                 break;
 42                             default :
 43                                 break;
 44                         }
 45                     }
 46                     xhr.open( "GET", url );
 47                     xhr.send();
 48                 }
 49 //                a();
 50             })
 51
 52             //我们对其进行封装
 53             function myAjax(url,postData,success,error){
 54                 // 此种方式不会 中文乱码,
 55                 var type = postData.type;
 56                 var timeout = postData.timeout;
 57                 var data = postData.data;
 58                 var xhr = new plus.net.XMLHttpRequest();
 59                 if(timeout&&timeout>0) xhr.timeout = timeout;
 60                 xhr.onreadystatechange = function () {
 61                     switch ( xhr.readyState ) {
 62                         case 0:
 63 //                            alert( "xhr请求已初始化" );
 64                         break;
 65                         case 1:
 66 //                            alert( "xhr请求已打开" );
 67                         break;
 68                         case 2:
 69 //                            alert( "xhr请求已发送" );
 70                         break;
 71                         case 3:
 72 //                            alert( "xhr请求已响应");
 73                             break;
 74                         case 4:
 75                             if ( xhr.status == 200 ) {
 76                                 success(eval(‘(‘+xhr.responseText+‘)‘));
 77                             } else {
 78                                 error(xhr.readyState,xhr);
 79                             }
 80                             break;
 81                         default :
 82                             break;
 83                     }
 84                 }
 85                 if(data){
 86                     if(type==‘post‘||type==‘get‘){
 87                         xhr.open( type||"GET", url );
 88                         xhr.send(JSON.stringify(data));
 89                     }else{
 90                         throw new Error("type is undefined !")
 91                     }
 92                 }else{
 93                     if(type!=‘post‘&&type!=‘get‘){
 94                         throw new Error("type is undefined !")
 95                     }
 96                     xhr.open( type||"GET", url );
 97                     xhr.send();
 98                 }
 99
100             }
101             mui.myAjax = myAjax;
102             mui.plusReady(function(){
103                 mui.myAjax(url,{
104                             type:‘post‘,
105                             timeout:5000,
106                             data:{}
107                         },
108                     function(data){
109                         var result = data.result;
110                         result = JSON.stringify(result);
111                         console.log(result);
112                         mui.alert(result);
113                     },function(state,xhr){
114                         console.log(state)
115                     }
116                 );
117             })

1.仅仅对ajax,简单的封装一下,如果你看不顺眼,就自己封装吧

2.涉及到mui的plus模块,故需真机调试

时间: 2024-10-19 19:55:59

mui.ajax中文乱码的相关文章

ajax中文乱码问题的总结

ajax中文乱码问题的总结 2010-12-11 22:00 5268人阅读 评论(1) 收藏 举报 ajaxurljavascriptservletcallback服务器 本章解决在AJAX中常见的中文问题,分析中文乱码产生的原因,以及如何解决乱码问题 1. HTTP协议的编码规定 在HTTP协议中,浏览器不能向服务器直接传递某些特殊字符,必须是这些字符进行URL编码后再进行传送.url编码遵循的规则: 将空格转换为(+) 对0-9,a-z,A-Z之间的字符保持不变. 对于所有其他的字符,用这

jquery+asp ajax 中文乱码问题

做网站的时候,因为网站最初设计的时候,没有考虑那么多, 设定了gb2312 的简体中文 作为网站编码. 作为中文用gb2312的编码属很正常的事件了,建站起来也没有什么大问题,包括自己编写JS Ajax也不会产生乱码问题 随着Jquery的流行,我也渐渐喜欢Jquery操作DOM的方法,后来把Jquery文件作为全站的公用JS库. Jquery的Ajax也挺好用,因为作为公用的文件了,所以不必再为每个需要Ajax的页面,再写什么XMLHTTPrequest这些对象,所以就开始使用Jquery的A

Ajax中文乱码的解决

网上有很多解决Ajax中文乱码的例子,昨晚弄了很久,最终确定一种"确实"有效地方法.首先我有必要说明一下我遇到的情况:有一个注册页面,注册用户填完信息并提交后,页面获得信息并通过java servlet存放到mssqlserver中.但若填写的信息中含有中文,则报错.这就是我遇到的情况. 网上似乎有很多种解决方法,不过我现在只确定了一种: 你要要将含有中文的数据进行两次encodeURI编码,在服务器端用java.net.URLDecodeer.decode(String s,&quo

ajax 中文乱码

ajax 中文乱码  Firefox 正常,IE 有问题是 解决办法 data:{"name":name,"number":number,"cardNumber":cardNumber,"t":new Date().getTime()}, 采用这种方式传参. contentType: "application/x-www-form-urlencoded; charset=utf-8", ajax 中文乱码

jquery之ajax中文乱码解决方案

$.ajax({ dataType : 'json',type : 'POST',url : 'http://localhost/test/test.do',data : {id: 1, type: '商品'},success : function(data){ } } ); 问题: 提交后后台action程序时,取到的type是乱码 解决方法: 方法一:提交前采用encodeURI两次编码,记住一定是两次 1.修改以下代码 data:{id:1, type:encodeURI(encodeUR

spring mvc ajax中文乱码的几种解决办法

使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的 ,研究了一下,有几种解决办法. 方法一: 在@RequestMapping里面加入produces = "text/html;charset=UTF-8" Java代码 @RequestMapping(value = "/configrole", method = RequestMethod.GET, produces = &quo

ajax 中文乱码问题 主要是IE浏览器

解决方案: 提交前采用encodeURI两次编码,注:一定是两次 举例: var taText = $("#txtName").val(); taText = encodeURI(encodeURI(taText)); $.getJSON("/Index/valid?name=" + taText + "&imageList=" + imageList + "", function (data) {...}); 以下解

SpringMVC使用Ajax请求返回中文乱码

前言: 最近在写一个JavaWeb后台时采用了spring+MyBatis+MySQL的方式.记录下遇到的关键问题 接口返回数据相关 使用@ResponseBody后返回NUll 说明:刚把后台运行起来,兴高采烈的测试接口数据,结果无论如何都是返回null, 最终通过各种百度,发现原来是没有引入关键的Jar包. 解决办法: 需要引入jackson的jar包(jackson core和jackson mapper),引入后 图: 使用@RequestMapping返回中文乱码 原因分析:(网上基本

SpringMVC中使用@ResponseBody注解返回值,Ajax取得中文乱码解决方法

Spring使用AnnotationMethodHandlerAdapter的handleResponseBody方法, AnnotationMethodHandlerAdapter使用request header中"Accept"的值和messageConverter支持的MediaType进行匹配,然后会用"Accept"的第一个值写入 response的"Content-Type".一般的请求都是通过浏览器进行的,request heade