iPhone ajaxからFormDataの使用を要求された問題について


1.問題分析
/*
*     ajax    ,   FormData     ,    。
*      :   iphone  input[type=file]                ;
*    input[type=file]                  
* (  :Android       ,    ,           )。
*/
var regData = {url:'...', isCommit:false, data:''};
$('#commitBtn').click(function(){
     
    if (regData.isCommit) {
        return false;
    }
    regData.isCommit = true;
    regData.data = new FormData($('#regForm')[0]);
    $.ajax({
        type: 'POST',
        url: regData.url,
        data: regData.data,
        dataType: 'json',
        contentType: false,
        processData: false,
        success: function (res) {
     
            console.log(res);
            regData.isCommit = false;
        },
        error: function () {
     
            regData.isCommit = false;
        }
    });
 });

2.ソリューション:
/**
*         ,           。               ,      。
*   file    ,        
*/

if ($('input[name=file]').prop('files').length == 0) {
    //input[type=file]  
    regData.data = $('#regForm').serialize();
    $.ajax({
        type: 'POST',
        url: regData.url,
        data: regData.data,
        dataType: 'json',
        success: function (res) {
     
           console.log(res);
           regData.isCommit = false;
        },
        error: function () {
     
           regData.isCommit = false;
        }
    });
} else {
    //input[type=file]   ,    new FormData
}