“PUT”请求通过AJAX发送,但没有传输数据组件

时间:2012-09-28 15:58:08

标签: javascript ajax jquery

通过AJAX你应该支持“PUT”和“DELETE”请求。我有一个通过“PUT”请求发送数据的表单,服务器确认它但没有发送参数。 “删除”请求也会出现相同的结果。如果我改为“发布”,它可以正常工作。 IE 9,Firefox和Chrome 都会产生相同的结果。正在发送put和delete请求,但没有数据。

$("#startButton").click(function(){
                $.ajax({url:"http://localhost:8084/Project/servlet",
                    data:parseFormData("simulatorForm"),
                    cache: "false",
                    dataType: "text",
                    contentType: "application/x-www-form-urlencoded",                
                    type:"put",
                    error:function(xhr){alert(xhr.status + xhr.statusText);} });
            });

注意:如果我更改为“发布”,这可以正常工作。我的表单中的所有参数都会被传输。我在IE,Chrome和Mozilla Firefox中试过这个。

我尝试在纯JavaScript中完成它,但我得到完全相同的结果。

var xmlhttp=new XMLHttpRequest();
           xmlhttp.open("PUT","http://localhost:8084/UtilityDashboard/SensorSimulator",true);
           xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
           xmlhttp.send(parseFormData("simulatorForm"));

1 个答案:

答案 0 :(得分:1)

您使用的是哪种网络服务器?关于PUT / DELETE请求的特别说明:

默认情况下,IIS 6不支持PUT和DELETE谓词。要启用此功能,您需要将通配符映射添加到应用程序的虚拟目录,这非常简单,只需单击站点中的通配符应用程序映射旁边的插入按钮或IIS管理器中的虚拟目录属性,然后输入aspnet_isapi的路径。 DLL。