Jquery 如何使用AJAX上传图像

Jquery 如何使用AJAX上传图像,jquery,ajax,Jquery,Ajax,我有一个表单,表单包括2个文本输入和1个文件上传输入。文本输入使用AJAX。但是文件上传不适用于ajax。如果我不使用ajax,它就会工作。因此,我的应用程序完全可以工作,但是没有ajax,页面必须刷新,因为它直接进入php文件,但我不希望这样。我想使用AJAX。我如何在这个表单中使用ajax $(“#表单”).submit(函数(e){ e、 预防默认值(); $.ajax({ url:'config.php', 键入:“POST”, 数据:$(“#表单”).serialize(), 成功:

我有一个表单,表单包括2个文本输入和1个文件上传输入。文本输入使用AJAX。但是文件上传不适用于ajax。如果我不使用ajax,它就会工作。因此,我的应用程序完全可以工作,但是没有ajax,页面必须刷新,因为它直接进入php文件,但我不希望这样。我想使用AJAX。我如何在这个表单中使用ajax

$(“#表单”).submit(函数(e){
e、 预防默认值();
$.ajax({
url:'config.php',
键入:“POST”,
数据:$(“#表单”).serialize(),
成功:函数(){
$(“.upClass”).html(“更新”);
}
})
})

更新

jQuery的ajax功能也可以发送文件,但必须发送FormData:

$("#form").submit(function(e) {

e.preventDefault();

//This line replaces the jQuery's serialize function: 
var formData = new FormData($("#form").get(0));
//And then, you can add extra field/values like this, if you need to:
formData.append("dato", "valor");

$.ajax({
   url: 'config.php',
   type: 'POST',
   data: formData ,
   contentType: false,
   processData: false,
     success: function () {
       $(".upClass").html("Updated");
       }
   })
})

contentType:false
processData:false
确保数据以“application/x-www-form-urlencoded”的形式发送,就像普通表单提交时一样。

这是否回答了您的问题?在这个链接中,一些用户说:“通过AJAX上传文件是不可能的。”但这篇文章是在2010年发送的。我认为近年来,这是可能的。“不是”被划掉了。当时在所有浏览器中都不可能,但现在是。特别是IE7不允许这样做,因此需要iframe解决方案。我的错误,修复了。我通常发送和接收JSON格式的数据。非常感谢,这对我很有用。