Javascript 使用jQuery ajax()时FormData为空
我尝试使用Javascript 使用jQuery ajax()时FormData为空,javascript,jquery,ajax,file-upload,Javascript,Jquery,Ajax,File Upload,我尝试使用jQuery.ajax文件提交表单。谷歌说我应该使用FormData,它会自动将文件和所有输入编码到一个我可以通过XHR发送的对象中 嗯,FormData对象是空的。它在调试器和服务器端都是空的。我找不到错误。这是代码。浏览器是Firefox27 图片: $(文档).ready(函数(){ $(“#生成参数”).submit(函数(e){ var数据=新的FormData(本); $.ajax({ 数据:数据, 方法:“张贴”, 成功:函数(url){ 警报(“正常”); },
jQuery.ajax
文件提交表单。谷歌说我应该使用FormData
,它会自动将文件和所有输入编码到一个我可以通过XHR发送的对象中
嗯,FormData
对象是空的。它在调试器和服务器端都是空的。我找不到错误。这是代码。浏览器是Firefox27
图片:
$(文档).ready(函数(){
$(“#生成参数”).submit(函数(e){
var数据=新的FormData(本);
$.ajax({
数据:数据,
方法:“张贴”,
成功:函数(url){
警报(“正常”);
},
cache:false,
contentType:false,
processData:false
});
e、 预防默认值();
返回false;
});
});
在参数
部分的网络
选项卡上的Firebug中,我看到一行:
[对象表单数据]:“未定义”
?真的吗
愚蠢的事情是我甚至不能发送从头创建的FormData
对象。像这样
var data=new FormData();
data.append(“test”,{value:0});//还空着
以下是我的做法:
表单
标签应包装所有输入文件李>
e.preventDefault()代码>应该在函数的开头,更好的练习
$("#generate_params").submit(function(e) {
e.preventDefault();
if( window.FormData !== undefined )
//make sure that we can use FormData ie>9, chrome > 7, opera > 12 safari >5, android > 3 gecko mobile > 2, opera mobile >12 <- wil support XHR too
{
var formData = new FormData(this);
// you can append aditional values:
// formData.append("be",logmebehave);
$.ajax({
url: 'filesend.php', //Path to the server script that process the data
type: 'POST',
data: formData,
xhr: function() { },
success: function(response){},
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});
} else {
//Fallback
}
return false;
});
$(“#生成参数”).submit(函数(e){
e、 预防默认值();
if(window.FormData!==未定义)
//确保我们可以使用FormData ie>9、chrome>7、opera>12 safari>5、android>3 gecko mobile>2、opera mobile>12事实证明,我使用的是jQuery 1.8.1,它不支持FormData
。库更新解决了这个问题。与Django后端的问题完全相同。
通过将name属性添加到表单中的所有输入中解决了这个问题,因为它们用于在dict/hashmap结构中处理表单数据
有一个好的。而不是var-formData=new-formData($(“#generate_-params”)[0]);
您可以编写var-formData=new-formData(this);
而不是。'this'是提交处理程序中的实际表单。记录新的formData会给我一个空对象,即使$('.#generate_-params')[0]给我看表单对象。有什么想法吗?我在jquery2.2.4.min.js中遇到了问题