前台:jsp页面用的是ajax传递参数
后台:spingmvc+配置了正确的viewResolver视图解析器
然后直接在controller里面return “success”等,不返回,success.jsp页面
解决办法:
controller返回参数,利用@ResponseBody返回给前台json格式,然后在 ajax的success函数里面使用 window.location.href = "${pageContext.request.contextPath}/fail.jsp";
<script type="text/javascript" language="javascript"> function doUpload() { var formData = new FormData($("#uploadForm")[0]); $.ajax({ url : '${pageContext.request.contextPath}/controller.do(这里是controller路径)', type : 'POST', data : formData, async : true, cache : false, contentType : false, processData : false, enctype:'multipart/form-data',//注意一定要有该参数 dataType:"json", success : function(data,status) { alert(status); window.location.href = "${pageContext.request.contextPath}/fail.jsp"; alert("上传成功"); }, error : function(data,status) { alert("上传失败"+status); } }); } </script>
表单
<form id="uploadForm"> <p> 指定文件名: <input type="text" name="filename" value="" /> </p> <p> 上传文件: <input type="file" name="file" /></ p> <input type="button" value="上传" οnclick="doUpload()" /> </form>
controller
@ResponseBody加在方法上,绑定返回参数,格式化成json,返回前台,回调函数接收。