Ajax request response 乱码解决方法

岛屿是海的疤dz

岛屿是海的疤dz

2016-02-19 11:31

今天给大家分享的是由图老师小编精心为您推荐的Ajax request response 乱码解决方法,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题??
代码如下:

AjaxRequestObj.createEqStatusParameter=function() {
    if (eqStatusArray.length 1) {
        return;
    }
    var paramNameArray = new Array();
    var paramValueArray = new Array();
    //取状态数组
    for (var index = 0, step = eqStatusArray.length; index step; index++) {
        var tempEqStatusObj = eqStatusArray[index];
        paramNameArray.push(tempEqStatusObj.eqCode + "`" + tempEqStatusObj.opDateTime);
        paramValueArray.push(tempEqStatusObj.status);
    }
    //分解、生成请求串。
    var paramStr = "";
    paramStr = paramStr.concat("eqStatusNames=").concat(encodeURIComponent(paramNameArray.join(","))).concat("&");
    paramStr = paramStr.concat("eqStatusValues=").concat(encodeURIComponent(paramValueArray.join("`")));
    return paramStr;
};

xmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
xmlHttpObj.send(param);
客户端将参数以UTF-8方式传递给应用端,在使用此参数时直接从request中取就可以。
[Ajax接收响应信息]
直接使用forward跳转实现div局部内容变更
代码如下:

if ("doQueryRequest".equals(actParam)) {
    EquipUtils equipUtilsObj = EquipUtils.getInstance();
    //取查询参数、拼接
    equipStatusMgrObj.setEquipCondition(equipUtilsObj.createEquipFilter(request));
    equipStatusMgrObj.setEquipStatusCondition(equipUtilsObj.getEquipStatusDate(request));
    //设备信息
    ListDynaBean equipArray = equipStatusMgrObj.queryEquip(null);
    //设备状态
    MapString, MapString, String equipStatusMapping =
        equipStatusMgrObj.queryEquipState4Map(equipArray, null);
    sessionObj.setAttribute("paginationEntity", equipStatusMgrObj.getPaginationEntity());
    sessionObj.setAttribute("equipCondition", equipStatusMgrObj.getEquipCondition());
    sessionObj.setAttribute("eqStatusCondition", equipStatusMgrObj.getEquipStatusCondition());
    request.setAttribute("equipList", equipArray);
    request.setAttribute("dateList", equipStatusMapping);
    try {
        request.getRequestDispatcher("/eq/detectPoint/InnerEqStatusRefresh.jsp").forward(request, response);
    } catch (Exception e) {
        e.printStackTrace();
    }
} else if ("getPageToolBar".equals(actParam)) {
    PaginationEntity pEntity = (PaginationEntity) sessionObj.getAttribute("paginationEntity");
    String tempStr = pEntity.getPaginationTool();
    OutputStream out;
    try {
        response.setContentType("text/html;charset=UTF-8");
        out = response.getOutputStream();
        out.write(tempStr.getBytes("UTF-8"));
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

因为,目前使用xmlHttpObj.responseText,responseText默认就是UTF-8所以将跳转的页面弄成UTF-8是不错的选择。至少不用担心乱码。。
[乱码原因]
之前此功能使用的是GB18030编码,到修改为止在其它客户机以及同事的机器上都非常正常,但就是我自己的机器翻页出现乱码。当我将此功能所用到的呈现文件统一使用UTF-8就ok了,也不知那xmlHttpObj触动了机器的那个神经。。查了些资料也都是说搞国际化的趋势,问题是解决了但原因没有找到!
[发现一Bug]
response.setContentType("text/html;charset=UTF8");在我机器上不抛错,但在同事的机器上就会抛错
改成response.setContentType("text/html;charset=UTF-8");一切OK..
展开更多 50%)
分享

猜你喜欢

Ajax request response 乱码解决方法

Web开发
Ajax request response 乱码解决方法

ajax乱码解决方法

Web开发
ajax乱码解决方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ajax中文乱码解决方法

Web开发
ajax中文乱码解决方法

ajax 乱码的一种解决方法

Web开发
ajax 乱码的一种解决方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

AJAX中文乱码PHP中完美解决方法

Web开发
AJAX中文乱码PHP中完美解决方法

AJAX乱码解决新方法

Web开发
AJAX乱码解决新方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

[asp]中的正则表达式运用代码

[asp]中的正则表达式运用代码

IOS开发代码分享之设置UISearchBar的背景颜色

IOS开发代码分享之设置UISearchBar的背景颜色
下拉加载更多内容 ↓