Put method not working in Google Chrome through AJAX

I have this working fine in Mozilla and IE but for some reason not chrome. In chrome, the error callback executes every time returning an error code of zero. Lots of articles on Stackoverflow keep reiterating how all major browsers support the "PUT" method through AJAX instead of forms. Chrome appears to be the exception.....

JavaScript

     function works(){alert("working");} // just a success callback

    $(document).ready(function(){

    $("#crudForm").submit(function(){
        $.ajax({url:"/UtilityDashboard/MeasurementNodes",
            data:parseFormData("crudForm"),
            cache: "false",
            async: "false",
            dataType: "text",
            contentType: "application/x-www-form-urlencoded",
            type:"put",
            success: works(),
            error:function(xhr){alert(xhr.status + xhr.statusText);} });
    });      

    });

HTML

    <form id="crudForm">
       Name<BR/>
       <input type="text" name="name"/><BR/><BR/>
       Node Id<BR/>
       <input type="text" name="node_id"/><BR/><BR/>
       Type<BR/> 
       <input type="text" name="type"/><BR/><BR/>
       Parent<BR/> 
       <input type="text" name="parent_id"/><BR/><BR/>
       Longitude<BR/> 
       <input type="text" name="longitude"/><BR/><BR/>
       Latitude<BR/>
       <input type="text" name="latitude"/><BR/><BR/>           
       Description<BR/>          
       <textarea name="description" rows="5" cols="40">Insert description of measurement node here</textarea><BR/><BR/>           
       <input type="submit" value="Add Node"/>

    </form>

Answers:

Answer

So Eugene and OhgodWhy were correct. Chrome does have support for the "put" method in the XMLHTTPRequest object!

Solution

The problem I was experiencing went away when I stopped using the "submit" event to transmit my form data, and instead relied on the "click" event. This took care of some other issues I was having where after submit chrome would append the form variables to the current URL. This could probably have also been solved by using event.preventDefault.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us Javascript

©2020 All rights reserved.