近期在一个项目中用到WebApi 2,遇到一个很诡异的问题,负责前端开发的同事再调用一个Delete 请求的方法时,问题报一个405“Method Not Allowed ”的错误,其它GET,POST请求都是正常的,而且我本地测试也是正常的。经过一翻努力发现,他的接口部署在了本机的IIS上,然后就这个原因在网上搜索,终于在园子里找到了一篇类似问题的文章《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>
总监可遇到过webapi,在使用post或get方法发起ajax调用,然后参数写错了。 也不走success也不走error也不发出请求。 直接把请求url粘贴到地址栏敲回车报不支持post/get ?
或者跨域了
没有,看你ajax是不是写错了