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

前端之家收集整理的这篇文章主要介绍了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,请求成功。

猜你在找的Ajax相关文章