IE8下返回JSON如何避免出现下载?

IE8下文件上传成功后,给出一个提示信息(json)。但是出现了文件下载~这种怎么处理??

评论区

lyh061619

2017-12-15 19:51

找对阵容了,欢迎光临,我来告诉你,做下判断,贴码给你:
1、requestUtils代码:
public static boolean isIEBrowser(HttpServletRequest request) {
String ua = request.getHeader("User-Agent");
if (ua == null) {
return false;
}

ua = ua.toLowerCase();
if (ua.indexOf("msie") > 0) {
return true;
}

if (ua.indexOf("gecko") > 0 && ua.indexOf("rv:11") > 0) {
return true;
}
return false;
}

2、控制层如:BaseController
public class BaseController extends Controller {
public boolean isIEBrowser() {
return RequestUtil.isIEBrowser(getRequest());
}

public void render(String message, Integer errorCode, Object data) {
Result ret = new Result();
ret.setMessage(message);
ret.setErrorCode(errorCode);
ret.setData(data);

if (isIEBrowser()) {
render(new JsonRender(ret).forIE());
} else {
renderJson(ret);
}
}

Didier

2017-12-16 21:06

@lyh061619 谢谢,星期一去试试

happyboy

2017-12-17 10:49

没有必要这么麻烦,其实这个往前台打印,自己写一个就行。没有必要调用jfinal的renderjson。
public void print(String msg) {
try{
this.getRequest().setCharacterEncoding("utf-8");
HttpServletResponse response = this.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.write(msg);
out.flush();
out.close();
}catch(Exception e){
logger.error(e.toString(),e);
}
}
上面的方面放在BaseController中,其他Controller继承自他,共用就行。不会出现下载。

Didier

2017-12-18 14:07

@lyh061619 可以实现~~3QQ

lyh061619

2017-12-19 11:14

@Didier 不客气^_^

热门反馈

扫码入社