Com o código abaixo eu consigo recuperar todos os campos tipo text, textarea,..., porém, o campo do tipo file ele não retorna, já tentei vários métodos mas não consegui. $('form#agenda').live('submit',function(e){ e.preventDefault(); var action = $(this); //Apenas para mostrar no console os retornos do envio console.log(action.serialize()); $.ajax({ url: action.attr("action"), type: 'post', data: action.serialize(),//serializeArray() é melhor para ser debugado, mas tem o mesmo resultado success: function( response ){ var data = $( '<div>'+response+'</div>' ).find('#conteudo').html(); conteudo.html(data); } }); }); O formulário é esse: <form method="post" id="agenda" action="?pag=agenda.php&fazer=adicionar" enctype="multipart/form-data"> <input type="hidden" name="acao" id="acao" value="Adicionar"> Título: <input type="text" name="titulo" id="titulo" size="60" value="Titulo"> Data: <input type="text" name="data" id="data" size="11" maxlength="10" value="<?php echo $data;?>"><br> URL: <input type="text" name="url" id="url" size="60" value="http://localhost/admin/agenda/"><br> Foto: <br><input name="foto" id="foto" type="file" value="" /> <br><!----> Descrição: <br> <textarea name="descricao" cols="74" rows="10">Minha Descrição aqui</textarea><br> <input type="submit" value="Adicionar" /> </form> A página php que pega esses valores tá normal, pois se o form não for enviado via $.ajax() ele captura todos os campos sem problema.   Como eu disse é só o campo (<input name="foto" id="foto" type="file" value="" />) que o $.ajax() não está serializando corretamente com o serialize(), com o console.log(action.serialize()) se pode verificar.   Alguma idéia de como retornar esse campo do tipo file pelo $.ajax()? Obrigado pela atenção.