场景
- 我通过
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 又得爆红了!