17
回答
struts返回的json一直提示下载,很急,求帮忙。
华为云实践训练营,热门技术免费实践!>>>   
<package name="json" extends="json-default">
<action name="QueryManager" class="com.Action.QueryManagerAction">
<result type="json">
<param name="root">result</param>
</result>
举报
KAM哥
发帖于4年前 17回/655阅
共有17个答案 最后回答: 4年前

引用来自“KAM哥”的答案

引用来自“yelloweye”的答案

引用来自“yelloweye”的答案

ie8,返回的json包含了url就会存在此bug的,目前我的解决办法是

SONObject json = JSONObject.fromObject(map);

writeText(json.toString());

public void writeText(String content){
HttpServletResponse resp = ServletActionContext.getResponse();
resp.reset();
resp.setDateHeader("Expires", -1);
resp.setHeader("Cache-Control", "no-cache");
resp.setHeader("Pragma", "no-cache");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out;
try {
out = resp.getWriter();
out.print(content);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
我加上去了url还是 http://localhost:8080/GYM/QueryManager.action;jsessionid=B0EB4E3B05959B30D01912DAB82B54E7
然后内容就是[{"manager_Dept":"111","manager_Resp":"111","manager_Phone":"13323232321","manager_Name":"kam","manager_Psw":"123","manager_ID":1001},{"manager_Dept":"111","manager_Resp":"333","manager_Phone":"22211132323","manager_Name":"kam","manager_Psw":"123","manager_ID":1002}]
这种不会出现下载的,我说的是这种情况

这应该是ie系列浏览器无法识别application/json头信息,就会提示下载,其实可改为text/plain,配置如下:

<package name="json" extends="json-default"> 
<action name="QueryManager" class="com.Action.QueryManagerAction"> 
<result type="json"> 
<param name="root">result</param>

<param name="contentType">text/plain</param> 

</result>

--- 共有 3 条评论 ---
温佐镜回复 @KAM哥 : 可以呀,605878441 4年前 回复
KAM哥明天一定要帮助我好吗,我弄了三天都没弄好,差点要放弃了。。 4年前 回复
KAM哥我加了之后的确不会再弹出下载框,但是那个url一直停留在action那里。data没有输出到jsp中,我能加你号给我远程解决一下吗,我弄了好几天了。 4年前 回复

<script type="text/javascript">
$("#click").click(function(){
$.ajax({
type:"post",
dataType: "json",
url:"QueryManager.action",
success:function(data){
$("#manage").append("sss");
}})});

这个是js,现在url是停留在action的,也就是说jsp也无法打印sss这个常量字符串。

ie8,返回的json包含了url就会存在此bug的,目前我的解决办法是

SONObject json = JSONObject.fromObject(map);

writeText(json.toString());

引用来自“yelloweye”的答案

ie8,返回的json包含了url就会存在此bug的,目前我的解决办法是

SONObject json = JSONObject.fromObject(map);

writeText(json.toString());

public void writeText(String content){
HttpServletResponse resp = ServletActionContext.getResponse();
resp.reset();
resp.setDateHeader("Expires", -1);
resp.setHeader("Cache-Control", "no-cache");
resp.setHeader("Pragma", "no-cache");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out;
try {
out = resp.getWriter();
out.print(content);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
--- 共有 2 条评论 ---
yelloweye回复 @KAM哥 : 是action返回 4年前 回复
KAM哥action要返回吗,返回什么, 4年前 回复
顶部