Put方法无法通过AJAX在Google Chrome中使用

时间:2012-09-19 06:33:10

标签: javascript jquery ajax rest google-chrome

我在Mozilla和IE中工作得很好,但出于某种原因没有镀铬。在chrome中,每次返回错误代码为零时都会执行错误回调。关于Stackoverflow的大量文章不断重申所有主流浏览器如何通过AJAX而不是表单支持“PUT”方法。 Chrome似乎是个例外.....

的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>

1 个答案:

答案 0 :(得分:0)

所以 Eugene OhgodWhy 是正确的。 Chrome确实支持XMLHTTPRequest对象中的“put”方法!

<强>解决方案

当我停止使用“提交”事件来传输我的表单数据时,我遇到的问题就消失了,而是依赖于“点击”事件。这解决了我提交的一些其他问题,在提交chrome之后将表单变量附加到当前URL。这可能也可以通过使用event.preventDefault来解决。