form 表单提交浏览器的enctype(编码方式)
1. method 为 get 时
enctype :x-www-form-urlencoded(默认), 把form数据append到对应的url后面;
2. method 为 post 时
Browser 把form 数据封装到http body 后面;
a. 没有type=file控件:
enctype :application/x-www-form-urlencoded (默认) 就可以了;
b. 有type=file控件:
enctype:multipart/form-data(显式指定),Browsert会把表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分隔符(boundary)
实际业务场景:在提交表单时,表单中存在name控件,同时包含上传的file; 现需要将后台返回信息回显过来;
- 用自带的form报表提交,在from 标签上加 enctype="multipart/form-data";
可以正常提交 name属性和 file文件,但返回数据前端无法接收到;
- 用 ajax提交表单数据,用ajax,post等方式处理;
要么可以提交单一的file 文件,要么通过 $('form').serialize() 序列化实现提交 name属性的控件;
- 解决方案:
借用 jquery.form.js插件(其中另外用了 jquery.validate.js用于数据校验,此插件独立于jquery.form.js),实现代码如下:
var options = {
rules: {
...,
},
messages: {
...,
}
};
function showResponse(responseText, statusText) {
if (statusText == 'success') {
alert('success');
}else{
alert('failed');
}
}
//确定
function saveSubmit($from) {
validator = $from.validate(options);
$from.submit(function() {
$(this).ajaxSubmit({
type : "post",
url : $from.attr('action'),
beforeSubmit : function(formData, jqForm, options) {
return $from.valid();
},
success : showResponse
});
return false; // 此处必须返回false,阻止常规的form提交
});
}
form 表单提交浏览器的enctype(编码方式)的更多相关文章
- Form表单提交数据的几种方式
一.submit提交 在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮(<input type='submit'>)就可以进行数据的提交, ...
- form 表单提交的另一种方式 js
<html> <head> <script type="text/javascript"> function formSubmit() { fm ...
- form表单提交数据编码方式和tomcat接受数据解码方式的思考
http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html *********************************************** ...
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- form表单提交与ajax消息传递
form表单提交与ajax消息传递 1.前后端传输数据编码格式contentType: urlencoded 对应的数据格式:name=xxx&password=666 后端获取数据:requ ...
- ajax form表单提交 input file中的文件
ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...
- Form 表单提交的几种方式
简单的总结一下form表单提交的几种方式:1.最简单的方式 就用form的submit提交方式,这种提交方式是不需要回调函数的 这种方式最近到一个form提供action路径后台接受就可以< ...
- 小程序 <web-view></web-view> 中使用 form 表单提交
在最近的小程序项目中,使用到了 <web-view></web-view> 内嵌 H5 页面,在 H5 中需要使用 form 表单提交数据. H5 使用的技术框架是 vue+v ...
- js_ajax模拟form表单提交_多文件上传_支持单个删除
需求场景: 用一个input type="file"按钮上传多张图片,可多次上传,可单独删除,最后使用ajax模拟form表单提交功能提交到指定方法中: 问题:由于只有一个file ...
随机推荐
- python函数def
#函数就是实现一个特定功能的程序块 #下面这个函数实现了打印helloworld的功能 def print_hello(): print('hello world!') #这是调用方法 print_h ...
- stringBuild置空方法
参看连接:http://blog.csdn.net/roserose0002/article/details/6972391
- java 需要看的书籍
参考链接:http://www.jianshu.com/p/454fc1e6cbe2 最近要看的有:Effective java 深入理解java 虚拟机 java 并发编程实战 (设计模式的书籍 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(一)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...
- 网页不能显示PNG验证码的解决办法
解决方法: 开始->运行,在运行输入框中输入 “regsvr32 c:\windows\system32\pngfilt.dll”(然后点击确定)如果在注册时出现 “已加载c:\windows\ ...
- ImportError: cannot import name 'path'
ImportError: cannot import name 'path' django的版本问题 先卸载 django1.11.14 重新安装最新的django2.0.7
- WEB接口测试之Jmeter接口测试自动化 (二)
通过逐个录入的方式,好不容易将需要测试几十个接口的300多个测试用例录入sampler-http请求中,固定的测试环境跑起来也还 感觉良好.不料在新服务器环境中跑用例时,问题来了:修改参数维护脚本等成 ...
- TJU Problem 1100 Pi
注: 1. 对于double计算,一定要小心,必要时把与double计算相关的所有都变成double型. 2. for (int i = 0; i < N; i++) //N 不 ...
- hasura graphql-engine v1.0.0-alpha25 的几个方便功能
hasura graphql-engine 是一个很不错的graphql 引擎,但是我们的数据模型经常可能会有变动, 但是以前的版本对于这些的处理,官方的方式是删除元数据,重启server,都不是很好 ...
- GridControl 之 BandedGridView
https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraGridViewsBandedGridBandedGridVie ...