我正在尝试通过Web界面验证某些文件的内容,并使用响应启用/禁用其他一些功能...如保存按钮。我已经完成了提交和文件处理(存根)但我似乎无法让我的响应正常工作。
问题:响应尝试让用户下载带有响应内容的文件。我想将响应传递给要处理的成功函数。
JS功能代码:
function validateCopybook() {
//submit values.
console.log("validating");
if (this.getForm().isValid()) {
this.getForm().submit({
url : 'batch/validateCopybook.json',
waitMsg : 'Validating...',
success : function(form, action) {
this.msg('Success', 'Processed file on the server');
}
});
}
}
服务器端代码:
public ModelAndView validateCopybook(HttpServletRequest request, HttpServletResponse response) throws Exception
{
// Check whether we're dealing with a multipart request
String contentHeader = request.getHeader("content-type");
boolean isMultipart = (contentHeader != null && contentHeader.indexOf("multipart/form-data") != -1);
if (isMultipart == false)
{
return Helper.errorResponse("not multipart");
}
else
{
DefaultMultipartHttpServletRequest reqM = (DefaultMultipartHttpServletRequest) request;
MultiValueMap<String, MultipartFile> fileMap = reqM.getMultiFileMap();
MultipartFile copyIn = fileMap.get("copy-path-in").get(0);
MultipartFile copyOut = fileMap.get("copy-path-out").get(0);
}
System.out.println(response.getContentType());
response.setContentType("application/json");
ModelAndView mav = Helper.successResponse("success");
return mav;
}
回复了回复:
ModelAndView: reference to view with name 'json'; model is {model={data={"success":true,"info":"success","dataLength":0,"data":[]}}}
有什么想法吗?
答案 0 :(得分:3)
好的我没有正确设置响应标头
response.setContentType("application/json");
不够。
MappingJacksonJsonView view = new MappingJacksonJsonView();
view.setContentType("text/html");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("success", true);
ModelAndView mav = new ModelAndView(view, responseMap);
正常工作。
答案 1 :(得分:0)
我想把响应传递给 要处理的成功功能。
您已在成功功能中获得服务器的响应!成功函数中的action
参数包含您的响应的详细信息。您可以通过action.result.variablename
访问回复。
答案 2 :(得分:0)
服务器响应类型应为“text / html”。 asp.net mvc结果:
return Json(new
{
success = true,
msg = "Your file has been uploaded",
data = new
{
name, size
}
}, "text/html");
现场演示是here