问题描述
使用ajax方式提交表单function simpleAjaxForm(formName, check){$("#" + formName).ajaxForm({dataType: "json",beforeSubmit: function(){var msg = check ? validator(check) : null;if(msg) dialogBox(msg);return msg ? false : true;},success: function(ret){ajaxReturn(ret);}});}//ajax返回函数function ajaxReturn(ret) {if(ret.msg) $.prompt("系统提示", ret.msg, {submit: function(clicked){if(ret.url) location.href = ret.url;return true;}});else if(ret.url) location.href = ret.url;}后台返回一个json格式的数据,{"msg":"发送成功","url":"order_apply_list.html"}正常的话,应该是弹出一个发送成功的对话框,然后点击确定,跳转到order_apply_list.html页面才对但是老是提示我下载保存PS:前台表单,包含了附件上传 问题补充:lizhi92574 写道
解决方案
不清楚,你可以暂时先使用下面代码。直接使用response,不用@RsponseBody注解response.setContentType("text/html")response.getWriter().writer("{msg:''}");
解决方案二:
response.setContentType("application/json;charset=utf-8");这个是正确的
解决方案三:
ret = jQuery.parseJSON(ret); 查看是否是这句出现问题。 jquery对json解析有很严格的限制需要这种格式response.getWriter().write("{"msg":"发送成功"}");
解决方案四:
吧dataType: "json", 去了。function ajaxReturn(ret) { ret = jQuery.parseJSON(ret); //解析json字符串}
解决方案五:
都一样吧他去了,或者改成response.setContentType("text/html")
解决方案六:
是application/jsonresponse.setContentType("application/json;charset=utf-8");
解决方案七:
附件上传采用的是iframe 作为ajax提交。iframe在识别 text/json头文件时会当做文件进行下载。可以吧头文件去了。response.setContentType("text/json; charset=UTF-8");
解决方案八:
标准写application/json,文件下载是浏览器的问题,参看http://connect.microsoft.com/IE/feedback/details/793307/text-json-mimetype