diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index d21f5b0..2a847f2 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -4,6 +4,7 @@ X-editable changelog
 
 Version 1.2.0 wip
 ----------------------------  
+[enh #36] 'submit' method: added 'ajaxOptions' property to modify ajax request (vitalets)  
 [enh] editableContainer removed from docs as not widely used (vitalets)  
 [enh] editableContainer: removed 'autohide' option and 'cancel' event. Use 'hidden' event instead (vitalets)  
 [enh] 'hidden' event: added param 'reason' that points to reason caused hiding (vitalets)  
diff --git a/src/element/editable-element.js b/src/element/editable-element.js
index 08dda47..70c3870 100644
--- a/src/element/editable-element.js
+++ b/src/element/editable-element.js
@@ -429,6 +429,7 @@ Makes editable any HTML element on the page. Applied as jQuery method.
             @param {object} options 
             @param {object} options.url url to submit data 
             @param {object} options.data additional data to submit
+            @param {object} options.ajaxOptions additional ajax options            
             @param {function} options.error(obj) error handler (called on both client-side and server-side validation errors)
             @param {function} options.success(obj) success handler 
             @returns {Object} jQuery object
@@ -439,21 +440,20 @@ Makes editable any HTML element on the page. Applied as jQuery method.
                 errors = this.editable('validate'),
                 values;
 
-                if(typeof config.error !== 'function') {
-                    config.error = function() {};
-                } 
-
                 if($.isEmptyObject(errors)) {
                     values = this.editable('getValue'); 
                     if(config.data) {
                         $.extend(values, config.data);
-                    }
-                    $.ajax({
-                        type: 'POST',
+                    }                    
+                    
+                    $.ajax($.extend({
                         url: config.url, 
                         data: values, 
+                        type: 'POST',                        
                         dataType: 'json'
-                    }).success(function(response) {
+                    }, config.ajaxOptions))
+                    .success(function(response) {
+                        //successful response 
                         if(typeof response === 'object' && response.id) {
                             $elems.editable('option', 'pk', response.id); 
                             $elems.removeClass('editable-unsaved');
@@ -461,13 +461,20 @@ Makes editable any HTML element on the page. Applied as jQuery method.
                                 config.success.apply($elems, arguments);
                             } 
                         } else { //server-side validation error
+                           if(typeof config.error === 'function') {
+                                config.error.apply($elems, arguments);
+                           }
+                        }
+                    })
+                    .error(function(){  //ajax error
+                        if(typeof config.error === 'function') {
                             config.error.apply($elems, arguments);
                         }
-                    }).error(function(){  //ajax error
-                        config.error.apply($elems, arguments);
                     });
                 } else { //client-side validation error
-                    config.error.call($elems, {errors: errors});
+                    if(typeof config.error === 'function') {
+                        config.error.call($elems, {errors: errors});
+                    }
                 }
             return this;
         }
diff --git a/test/unit/api.js b/test/unit/api.js
index 93f0cfb..ca7a1d9 100644
--- a/test/unit/api.js
+++ b/test/unit/api.js
@@ -213,7 +213,6 @@ $(function () {
      });    
      
       asyncTest("'submit' method: client and server validation", function () {
-        expect(6);  
         var ev1 = 'ev1',
             ev2 = 'ev2',
             e1v = 'e1v',
@@ -230,6 +229,7 @@ $(function () {
                 equal(settings.data.text, ev2, 'first value ok');
                 equal(settings.data.text1, e1v, 'second value ok');
                 equal(settings.data.a, 123, 'custom data ok');
+                equal(settings.type, 'PUT', 'ajaxOptions ok');
                 this.responseText = {errors: {
                     text1: 'server-invalid'
                   }
@@ -256,11 +256,13 @@ $(function () {
             data: {a: 123},
             error: function(data) {
                 equal(data.errors.text1, 'server-invalid', 'server validation error ok');
-                
                 e.remove();
                 e1.remove();
                 start(); 
-            }            
+            },
+            ajaxOptions: {
+                type: 'PUT'
+            }
         });       
        
      });                  
@@ -339,4 +341,4 @@ $(function () {
         equal(e.text(), groups[2], 'new text shown correctly');
      });                                
   
-});            
\ No newline at end of file
+});