Javascript 选项405(不允许方法)不管服务器发送访问控制允许方法:选项、GET、HEAD、POST
我正在尝试发出跨域请求,我的服务器配置为发送以下标头:Javascript 选项405(不允许方法)不管服务器发送访问控制允许方法:选项、GET、HEAD、POST,javascript,sencha-touch,cross-domain,cors,jqxhr,Javascript,Sencha Touch,Cross Domain,Cors,Jqxhr,我正在尝试发出跨域请求,我的服务器配置为发送以下标头: Access-Control-Allow-Credentials:true Access-Control-Allow-Headers:x-requested-with, Authorization Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST Access-Control-Allow-Origin:* 但当发出选项请求时,我得到OPTIONS 405(不允许使用方法)错误 您知
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:x-requested-with, Authorization
Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST
Access-Control-Allow-Origin:*
但当发出选项请求时,我得到OPTIONS 405(不允许使用方法)
错误
您知道问题是什么以及如何解决吗?您的web服务器/应用程序可能已配置为针对每个HTTP GET谓词和POST谓词请求发送所述响应头。但是您的web服务器是否配置为处理HTTP选项 如果您需要更多详细信息,请提供您正在使用的Web服务器和应用程序编程技术 有一点背景知识,当您有一个带有一些自定义请求头的跨域请求时,浏览器会发送一个选项请求。此请求是在实际请求之前提出的。只有当此请求与您提到的响应标题一起返回时,浏览器才会发出实际请求
//这些选项请求称为飞行前请求——通常浏览器开发工具不会在其网络选项卡中跟踪它们。f我建议两种解决方案: 1) 如果您使用的是WebAPI,则需要实现选项方法,按照惯例,该方法应如下所示:
public class XXXController : ApiController
{
// OPTION http-verb handler
public string OptionsXXX()
{
return null; // HTTP 200 response with empty body
}
...
}
2) 如果您未使用WebAPI,请尝试了解代码的哪一部分触发选项调用的选项405(不允许使用方法)
错误。在这种情况下,我将检查是否尝试向Web.config
文件中添加以下有效的
:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<!-- CORS temporary solution -->
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Authorization, Accept, X-Requested-With" />
<add name="Access-Control-Allow-Methods" value="OPTIONS, TRACE, GET, HEAD, POST, PUT" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
您需要修改默认选项VerbHandler。如果使用asp classic,则意味着在Web.config文件中添加以下行:
<handlers>
<remove name="OPTIONSVerbHandler" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="IsapiModule" scriptProcessor="C:\Windows\System32\inetsrv\asp.dll" resourceType="Unspecified" requireAccess="None" />
</handlers>
谢谢您的评论。服务器是iis7。如何配置它来处理选项?听起来是个不错的方向。你能提供一些关于如何处理HTTP选项verb的推荐链接吗?@Blaise关于处理选项verb的最短解释在中进行了解释-有关如何在generat中使用web api<2和asp.net mvc的更多详细信息,请检查此项。对于web api 2,请检查最后一条评论,它最终解决了我在webapi 2中遇到的问题:安装包Microsoft.AspNet.webapi.Cors和httpEnableConfig.EnableCors()可能与