本文主要是介绍MVC——ajax发送delete请求 报错404,405,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
调用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,请求成功。
这篇关于MVC——ajax发送delete请求 报错404,405的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!