ajax回调参数乱码怎么办

      Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种建立交互式网页应用的网页开辟手艺。

      Ajax = 异步 JavaScript 和 XML 或者是 HTML(尺度通用标识表记标帜说话的子集)。

      Ajax 是一种用于建立快速动态网页的手艺。

      Ajax 是一种在无需从头加载整个网页的环境下,可以或许更新部门网页的手艺。

      经由过程在后台与办事器进行少量数据互换,Ajax 可以使网页实现异步更新。这意味着可以在不从头加载整个网页的环境下,对网页的某部门进行更新。

传统的网页(不利用 Ajax)若是需要更新内容,必需重载整个网页页面。

东西/原料

  • 电脑
  • myeclipse

方式/步调

  1. 1

    第一步:问题定位。

    1、呈现乱码的原因一般都是因为编码的纷歧致导致的。ajax请求接管字符编码一般都为utf-8

    2、在数据传输的过程中,前端get请求或post请求在颠末Tomcat和java的一些框架时,都可能会呈现编码纷歧致的问题导致乱码,乱码一般都是中文。

  2. 2

    第二步:问题重现。

    1、我们重现的是比力原始的javaweb的servlet开辟,status2和springmvc和其它框架道理根基都是一样的。

    2、代码实现

    2.1 起首搭建一个javaweb项目

    编写servlet关头代码

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {

    Map<String,Object> map = new HashMap<String,Object>();

       map.put("name", "张三");

       map.put("name2", "李四");

       map.put("name3", "网二");

       JSONObject json = new JSONObject(map);

    PrintWriter out =  response.getWriter();

    out.write(json.toString());

    out.close();

    }

    2.2 web.xml设置装备摆设

      <servlet>

      <servlet-name>servlet</servlet-name>

      <servlet-class>com.test.servlet.ServletController</servlet-class>

      </servlet>

      <servlet-mapping>

      <servlet-name>servlet</servlet-name>

      <url-pattern>/servlet.do</url-pattern>

      </servlet-mapping>

  3. 3

    第三步:重现乱码测试。

    1、打开页面。

    2、单击按钮ajax

    3、弹出内容乱码,问题重现

  4. 4

    第四步:问题解决。

    1、解决的思惟本家儿如果经由过程领受数据,传输数据之前先利用utf-8编码解决。

    2、具体代码如下所示

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("application/json;charset=utf-8");

    // setContentType与setCharacterEncoding的挨次不克不及更调,不然仍是无法解决中文乱码的问题

    response.setCharacterEncoding("UTF-8");

    Map<String,Object> map = new HashMap<String,Object>();

       map.put("name", "张三");

       map.put("name2", "李四");

       map.put("name3", "网二");

       JSONObject json = new JSONObject(map);

    PrintWriter out =  response.getWriter();

    out.write(json.toString());

    out.close();

    }

    3、测试。

    3.1 打开页面,

    3.2点击ajax按钮如下图所示。

注重事项

  • 若是领受呈现乱码:new String(str.getBytes("ISO-8859-1"),"uft-8");
  • 发表于 2019-03-31 22:14
  • 阅读 ( 795 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具