$.toMultipartForm(options.data, function(params) {
   $.sendFormAsBinary({
     url: options.url,
     body: params.body,
     content_type: params.content_type,
     form_data: params.form_data,
     method: options.method,
     success: function(data) {
       if(options.success && $.isFunction(options.success)) {
         options.success.call(this, data);
       }
     },
     progress: function(data) {
       if(options.progress && $.isFunction(options.progress)) {
         options.progress.call(this, data);
       }
     },
     error: function(data, request) {
       // error function
       if(options.error && $.isFunction(options.error)) {
         data = data || {};
         var $obj = options.error.call(this, data.errors || data);
       } else {
         $.ajaxJSON.unhandledXHRs.push(request);
       }
     }
   }, options.binary === false);
 });
 $.toMultipartForm(args, function(params) {
   $.sendFormAsBinary({
     url: action,
     body: params.body,
     content_type: params.content_type,
     form_data: params.form_data,
     method: method,
     success: xhrSuccess,
     error: xhrError
   });
 });