MVC——ajax发送delete请求 报错404,405

来源:互联网 发布:照片电子相册制作软件 编辑:程序博客网 时间:2024/05/18 13:46

调用mvc的删除方法,方法上面标注的请求方式为【HttpDelete】

ajax调用,type为“delete”

在本机调试,报错404 方法找不到



于是在mvc项目的web.config修改配置如下:

<system.webServer>    <validation validateIntegratedModeConfiguration="false" />    <modules runAllManagedModulesForAllRequests="true">    </modules>  </system.webServer>

设置modules的属性 runAllManagedModulesForAllRequests为true

本地再次调试发现好了

还有前端调用delete的方式,有人认为是:

jquery中的标准请求,只有get和post,而put和delete其实都是post请求,只是分别加了参数_method: put和method: delete, 所以在jquery中ajax delete请求时就可以使用$.post(url, {_method: "delete"}, function(data){...})。这个要比直接使用$.ajax({method: :delete})好的多,有两个原因,1: 部分浏览器不支持{method: :delete}和{method: :post}2: 这个ajax请求无法处理返回的数据

具体还带查证

于是信心满满将服务部署在服务器上上,然而404确实不见了,405出现了



于是看到如下的解决方案:

IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法

WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method  Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:

<system.webServer>   <modules>     <remove name="WebDAVModule" />   </modules>   <handlers>     <remove name="WebDAV" />   </handlers> </system.webServer>

原文地址;http://www.cnblogs.com/shanyou/archive/2012/03/23/2414252.html

在IIS服务器上的服务重新启动,删除操作的方法返回200,请求成功。

原创粉丝点击