asp.net web api控制器中不允许405个方法选项?
发布时间:2020-12-16 03:31:23 所属栏目:asp.Net 来源:网络整理
导读:我有这个非常常见的问题,它说GET请求的方法不允许(OPTIONS).每当我进行API调用时,我都会收到以下错误.我在web.config中有这个设置: system.webServer modules remove name="WebDAVModule"/ /modules httpProtocol customHeaders add name="Access-Control-A
我有这个非常常见的问题,它说GET请求的方法不允许(OPTIONS).每当我进行API调用时,我都会收到以下错误.我在web.config中有这个设置:
<system.webServer> <modules> <remove name="WebDAVModule"/> </modules> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> <add name="Access-Control-Allow-Headers" value="Origin,Authorization,X-Requested-With,Content-Type,Accept"/> <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/> </customHeaders> </httpProtocol> <handlers> <remove name="WebDAV"/> <remove name="ExtensionlessUrlHandler-Integrated-4.0"/> <remove name="OPTIONSVerbHandler"/> <remove name="TRACEVerbHandler"/> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/> </handlers> </system.webServer> 我尝试使用Asp.Net.WebApi.Cors并使用EnableCors()对所有原始标头和方法全局强制执行CORS,但这也无效. 解决方法
在< remove name =“OPTIONSVerbHandler”/>之后的处理程序中,添加以下内容:
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="IsapiModule" requireAccess="None" scriptProcessor="C:WindowsSystem32inetsrvasp.dll" resourceType="Unspecified" /> 请参阅IIS hijacks CORS Preflight OPTIONS request的答案. 或者甚至可能只是这样: <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> 如果这不起作用,那么将在global.asax或其他代码中添加以下内容: protected void Application_BeginRequest(object sender,EventArgs e) { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*"); if(HttpContext.Current.Request.HttpMethod == "OPTIONS") { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods","GET,DELETE"); HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers","Content-Type,Accept"); HttpContext.Current.Response.AddHeader("Access-Control-Max-Age","1728000" ); HttpContext.Current.Response.End(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 在我的Controller中重构Switch语句
- asp.net – 检查会话是否已超时
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定模型
- asp.net – 如何指定相对于站点根目录的路径?
- 动手造轮子:实现一个简单的依赖注入(零)
- ASP.NET Core使用微软官方类库实现汉字转拼音
- asp.net – 如何为同一个按钮运行客户端和服务器端代码?
- asp.net-mvc – MVC模型绑定:为什么我不能绑定到迭代器属性
- asp.net-mvc – 如何测试ASP MVC应用程序以获得基于用户的安
- asp.net-mvc – Visual Studio总是能够在源代码视图而不是设