• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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..
    您可能感兴趣的文章:
    • Ajax中responseText返回的是一个页面而不是一个值
    • ajax的responseText乱码的问题的解决方法
    • jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
    • Ajax Throws Sys.WebForms.PageRequestManagerErrorException with Response.Redirect的解决方法
    • ajax的 responseXML返回接受 asp
    • 关于Ajax中通过response在后台传递数据问题
    上一篇:Ajax 表单验证 实现代码
    下一篇:AJAX 随记
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Ajax request response 乱码解决方法 Ajax,request,response,乱码,解决,