Ajax 请求 servlet 传回来的 xhr.responseText是一个json字符串,但打印出的是html文件内容

场景

  • 我通过 ajax 请求服务器 ,服务器接到请求带过来的参数并经过 Service 逻辑层 处理完数据并 以json格式 response响应 返回到 用户端。但通过 XMLHttpRequest 的对象 xhr 的 responseText 属性拿到的 响应数据 reString 中却包含了一个完整的 html 页面文件内容,可我明明只传了 一些对象数据,并没有 html的标签代码。我该咋办呢?

问题

  • ajax 请求 返回 json 字符串数据 但却多包含了 html 文件的内容
    在这里插入图片描述

原因

  • servlet 并没有在 re打印后结束打印器没有关闭,导致把 response 响应字符流 中含有的 html文件 打印回传到 ajax请求 的对象 xhr 这里。
    在这里插入图片描述

解决

  • 在处理完数据要返回 客户端时,应该要遵循下列步骤:

    步骤1. 获取输出字符流打印器
    PrintWriter pw = reponse.getWriter();

    步骤2. 打印要返回的结果字符串 pw.print(re);

    步骤3. 清除打印器的缓存内容 pw.flush();

    步骤4. 关闭打印器
    pw.close();


若使用 PrintWriter 类 对象 pw 返回处理数据时:一定要记得 清除缓存 并 关闭 打印器啊,不然 JavaScript 又得爆红了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值