在 IIS7 上启用跨域资源共享 (CORS)
在 IIS7 上启用 CORS 可能是一项艰巨的任务,尤其是当您遇到意外情况时行为,例如 200 响应之前的 405 响应。本文旨在阐明这个问题并提供有效的解决方案。
解决 405 响应
当 IIS7 拦截 HTTP OPTIONS 时,可能会出现 405 Method Not allowed 响应请求而不是您的应用程序。要解决此问题:
替代解决方案:处理 BeginRequest 中的 OPTIONS 动词
如果上述步骤不能解决问题,您可以在 BeginRequest 方法中处理 HTTP OPTIONS 谓词,如下所示:
protected void Application_BeginRequest(object sender, EventArgs e) { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); if (HttpContext.Current.Request.HttpMethod == "OPTIONS") { // Pre-flight OPTIONS call HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, 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(); } }
以上是为什么在 IIS7 上启用 CORS 时收到 405 Method Not allowed 响应?的详细内容。更多信息请关注PHP中文网其他相关文章!