ajax提交表单上传文件到servlet中保存如何才能不刷新页面?

表单:<formid="fileForm"action="/wx2.0/FileUploadServlet"method="post"enctype="multipart... 表单:

<form id="fileForm" action="/wx2.0/FileUploadServlet" method="post" enctype="multipart/form-data" target="_parent">
<input type='button' class='btn' value='添加图片' />
<input type="file" id="viewFiles" class="file" name="files" onChange="onInputFileChange()" size="28"/>
</form>
ajax代码:
$.ajax({
type: "POST",
url:$("#fileForm").submit(),
data:$("#fileForm").serialize(),//
dataType:"text",
success: function(data) {
alert("ok\n"+data);
return false;
},
error: function(data) {
alert("fail\n"+data);
return false;
}
});
servlet代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
FileUpload fu=new FileUpload();
fu.setMap(request);//解析request
Map<String,FileItem> files=fu.getFiles();
String fileName =fu.getFileName(files.get("files"));
File file=new File(this.getServletContext().getRealPath("upload\\"+fileName));
try {
files.get("files").write(file);
out.println("<script>alert('上传成功!');return false;</script>");
} catch (Exception e) {
e.printStackTrace();
out.println("上传失败!");
}
}
以上代码已经可以实现文件上传,但是会刷新页面。因为ajax中的url提交了表单,如果要不刷新页面该如何?
展开
 我来答
451177500
2014-09-02 · TA获得超过1263个赞
知道小有建树答主
回答量:946
采纳率:25%
帮助的人:473万
展开全部

可以使用iframe来实现

这里有文章

http://blog.csdn.net/zmcmm/article/details/37872097
更多追问追答
追问
你给的方法是可以实现无刷新,但是这样的话 ajax中怎么接收返回值呢?
追答

ajax接收返回值是通过回调函数

out.write("<script type='text/javascript'>parent.callback('123')</script>" );

这里面的callback就是自己定义的回调函数了。parent是iframe的父页面,也就是当前页面,里面的123是你要返回的值。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式