Javascript 使用ajax发布文件和数据

Javascript 使用ajax发布文件和数据,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在其他帖子上读到过这样的情况,类似于发生在我身上的事情,但我仍然无法得到解决方案 $('#edit-continue').on('click', function(e) { e.preventDefault(); var photo = new FormData(); <----- jQuery.each(jQuery('#photo')[0].files, function(i, file) {<

我在其他帖子上读到过这样的情况,类似于发生在我身上的事情,但我仍然无法得到解决方案

$('#edit-continue').on('click', function(e) {
    e.preventDefault();
    var photo = new FormData();                               <-----
    jQuery.each(jQuery('#photo')[0].files, function(i, file) {<----- SO suggest for file upload
        photo.append('file-' + i, file);                      <-----
    });
    $.ajax({
        type: "POST",
        url: "/templates/staycation/common/edit-profile.php",
        data: {
            id: $('#id').val(),
            email: $('#email').val(),
            birthday: $('#birthday').val(),
            gender: $("input[name='gender']:checked").val(),
            photo: photo,
        },
        success: function(data) {
            console.log('pass');
            console.log(data);
        },
        error: function(data) {
            console.log('not pass');
            console.log(data);
        },
        cache: false,
        contentType: false,
        processData: false, <------ i think my error is here
    });
$('edit continue')。在('click',函数(e){
e、 预防默认值();

var photo=new FormData();这正是适合我的

// formData will wrap all files and content of form
var formData=new FormData($('#formId')[0]); 
// you can add more data ot formData after this to
$.ajax({
        url     :   'upload.php',
        type    :   'post',
        data    :   formData,
        processData:false,
        contentType:false,
        success :   function(e)
                    {
                        alert('uploaded successfully');
                    },
        error   :   function()
                    {
                        alert('hello from here');   
                    }
    });

这对我来说是完美的

// formData will wrap all files and content of form
var formData=new FormData($('#formId')[0]); 
// you can add more data ot formData after this to
$.ajax({
        url     :   'upload.php',
        type    :   'post',
        data    :   formData,
        processData:false,
        contentType:false,
        success :   function(e)
                    {
                        alert('uploaded successfully');
                    },
        error   :   function()
                    {
                        alert('hello from here');   
                    }
    });

请参见发布HTML表单,也请参见发布HTML表单