AJAX 表单提交 文件上传
1. AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。提高用户体验度。
主要是使用XMLHttpRequest 对象
<script type="text/javascript" >
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()//读取状态
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var data = xmlhttp.responseText;//
//Text <h1>successMessage</h1> 直接使用
//Json {'data':'success'} 自动解析为script对象 使用data.data=='success'
//XML <?xml encoding="UTF-8">
// <title>无题<title>
// </xml>
//data.documentElement.getElementsByTagName("title")[0].firstChild.nodeValue == '无题'
document.getElementById("txtHint").innerHTML=data;
}
}
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");// 可选值
xmlhttp.open("GET","/ajax/Test.action?data=HelloWorld",true);
xmlhttp.send();
</script>
请求状态readyState 0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
2.Jquery 提供了对AJAX的封装。使用将简便了。开发更简单了。
$.ajax() $.get(), $.post()
$.post(){
urlString: 'test.action',//发送请求地址。
data: {"key":"value","key2","value2"},//或者使用$("#formId").serialize()序列化 (可选)Map待发送 Key/value 参数。
callback:function(){alert("OK!");},(可选)Function发送成功时回调函数。
//type (可选)String返回内容格式,xml, html, script, json, text, _default。
success:function(msg)
{
alert("success"+msg.data);//json
}
error:function(result)
{
alert("error!");
}
}
3当表单中存在file属性,需要用到文件上传时就会出问题了。这里需要用到jquery.form.js插件。
var mainform = $("#formId");
mainform.ajaxSubmit({
type: 'post',
url: "hello/formTest.action" ,
beforeSend: function (a, b, c){$("#showMsg").value('正在保存数据中...');},//展示 “正在保存数据”
complete: function (){ $("#showMsg").hide()},//隐藏 “正在保存数据”
success: function(data){
alert("success"+data.data);
},
error: function(result){
alert("error");
}
});
灵活运动ajax可以提高用户体验度。不过要传递数据量较大时最好不要使用。消耗时间太多反而体验变差。
AJAX 表单提交 文件上传的更多相关文章
- 传统表单提交文件上传,以及FormData异步ajax上传文件
传统的文件上传: 只用将form表单的entype修改成multipart/form-data,然后就可以进行文件上传,这种方式常用并且简单. 以下是另一种方式FormData,有时候我们需要ajax ...
- Struts2文件上传(基于表单的文件上传)
•Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目 •Commons-Fil ...
- [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Ajax提交Form表单及文件上传
刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...
- ajax提交表单,支持文件上传
当我们提交表单但是又不想要刷新页面的时候就可以考虑使用ajax来实现提交功能,但是这有个局限就是当有文件上传的时候是行不通的,下面借助于jquery.form可以很方便满足我们的需求. 1.表单写 ...
- 表单多文件上传样式美化 && 支持选中文件后删除相关项
开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进 ...
- Django的form表单之文件上传
在生成input标签的时候可以指定input标签的类型为file类型 <!DOCTYPE html> <html lang="en"> <head&g ...
- php+form表单的文件上传
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 2020最新Servlet+form表单实现文件上传(图片)
servlet实现文件上传接受 这几天学了一点文件上传,有很多不会,在网查了许多博客,但是最新的没有,都比较久了 因为我是小白,版本更新了,以前的方法自己费了好久才弄懂,写个随笔方便以后查找 代码奉上 ...
随机推荐
- mysql及powerdesigner的初次使用
原文:mysql及powerdesigner的初次使用 MYSQL的下载与安装: 下载与安装指导教程: http://jingyan.baidu.com/article/597035521d5de28 ...
- Android在第三方应用程序系统应用尽早开始,杀死自己主动的第三方应用程序,以重新启动
1.为什么第三方应用程序可能早于System的app启动? Android能够查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader.软件启动的大致流程应该是 启动kernel 执行se ...
- [置顶] 纯手工打造漂亮的瀑布流,五大插件一个都不少Bootstrap+jQuery+Masonry+imagesLoaded+Lightbox!
前两天写的文章<纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!>受到很多网友的喜爱,今天特别推出姊妹篇<纯手工打造漂亮的瀑 ...
- Javascript学习4 - 对象和数组
原文:Javascript学习4 - 对象和数组 在Javascript中,对象和数组是两种基本的数据类型,而且它们也是最重要的两种数据类型. 对象是已命名的值的一个集合,而数组是一种特殊对象,它就像 ...
- Firefox firebug and xpath checker
From http://blog.sina.com.cn/s/blog_5aefba9a0100csy8.html
- 浅谈JavaScript中的柯里化函数
首先,不可避免的要引经据典啦,什么是柯里化函数呢(from baidu): 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返 ...
- crawler_编码转换_unicode(年)
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @declare: unicode 帮助类<br> ...
- Apache & WebDav 配置(二)
(二)WebDav配置 & put脚本编辑! WebDav 配置 ---------------- # 1. 修改了两个配置文件 # 2. 创建web访问用户的用户名和口令 # 3. 创建了两 ...
- 【百度地图API】除夕夜,大家一起来赶走“夕”——删除标注功能
原文:[百度地图API]除夕夜,大家一起来赶走"夕"--删除标注功能 任务描述: 农历12月31日是中国传统的节日——除夕.你知道除夕是怎么来的麼? “夕”在中国古代神话中,可是一 ...
- java传值和通过引用传递
第一次使用int实验: public class TTEST { private static List<UserEntity> mList = new LinkedList<Use ...