$('#myform').on('sumbit', function(){
var form = $(this);
var formdata = false;
if (window.FormData)
{
formdata = new FormData(form[0]);
}
var formAction = form.attr('action');
$.ajax({
url : '/upload',
data : formdata ? formdata : form.serialize(),
cache : false,
contentType : false,
processData : false,
type : 'POST',
success : function(data, textStatus, jqXHR){
// Callback code
}
});
});你不需要任何插件,flash或iframe技巧就能有效的实现。这里有一些技巧可以使这些代码以我们期望的方式工作:
当我们创建FormData的实例时,我们传递form [0]而不是form。它的意思是实际的表单元素,但不是jQuery选择器。
我们只是传递false而不是定义contentType。这意味着jQuery不向请求添加 Content-Type头部。
我们设置processData为false,所以,jQuery不会将我们的data值(以FormData为基础)转换为字符串。
Copyright © 2019- 33spj.com 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务