asp.net-mvc-4 – 附加到HTTP响应的CORS标头未发送到浏览器
我通过HttpContext.Current对象直接写入ASP.NET MVC中的请求标头,但这些标头没有被发送到浏览器…任何想法可能导致这种情况?如果我通过web.config添加标题,我只能获取标题.这对我不起作用,因为我需要允许多个域到Access-Control-Allow-Origin.
我尝试使用此代码将标头直接写入HttpContext.Current. context.Response.AppendHeader("Access-Control-Allow-Origin",origin); context.Response.Cache.SetCacheability(HttpCacheability.NoCache); context.Response.ContentType = "text/plain"; context.Response.Write("Hello World " + DateTime.Now.ToString()); 我得到了hello world但不是标题. 我也试图使用Thinktecture.IdentityModel.Http.Cors.WebApi但得到相同的结果,这没什么.我检查了一个重新检查我的代码,以确保它符合教程] 1.我已经在Web.config中配置了头文件,并通过Thinktecture进行了尝试,但是当Access-Control-Allow-Origin在web.config中时我只获得了头文件,但我仍然在Chrome / FF中出错.似乎只是在OPTIONS请求上发送标题,但我不确定. Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,ga;q=0.6,pt-BR;q=0.4,pt;q=0.2 Access-Control-Request-Headers:accept,origin,content-type Access-Control-Request-Method:GET Authorization:Negotiate REDACTED Cache-Control:max-age=0 Connection:keep-alive Host:bpapi.domain.com Origin:http://dev-02 Referer:http://dev-02/_Layouts/PAR/NewParItem.aspx User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML,like Gecko) Chrome/26.0.1410.43 Safari/537.31 HTTP/1.1 200 OK Server: Microsoft-IIS/7.5 Persistent-Auth: false X-Powered-By: ASP.NET Access-Control-Allow-Origin: http://dev-02 Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept WWW-Authenticate: Negotiate REDACTED Date: Sat,06 Apr 2013 00:35:31 GMT Content-Length: 0 这是web.config as a pastebin,以免弄乱这个问题.未安装WebDAV. public class CorsConfig { public static void RegisterCors(HttpConfiguration httpConfig) { WebApiCorsConfiguration corsConfig = new WebApiCorsConfiguration(); corsConfig.RegisterGlobal(httpConfig); corsConfig .ForResources(new string[] { "Industries","Projects" }) .ForOrigins(new string[] { "http://dev-01","http://dev-02" }) .AllowAll(); } } 这是Thinktecture代码: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //CorsConfig.RegisterCors(GlobalConfiguration.Configuration); RegisterCors(MvcCorsConfiguration.Configuration); } private void RegisterCors(MvcCorsConfiguration corsConfig) { corsConfig .ForResources(new string[] {"Industries","Projects" }) .ForOrigins(new string[] { "http://dev-01","http://dev-02" }) .AllowAll(); } 更新2013/04/09:context.Response.AppendHeader(…)和context.Response.AddHeader(…)都没有任何效果.如果他们获得JSONP而不管允许原始标题,那么Chrome和FF似乎没问题,所以我的项目至少可以工作.我也试过< remove name =“OPTIONSVerbHandler”/>没有成功.我将MVC应用程序部署到新服务器,以查看它是否是本地化到特定计算机的内容. 解决方法
可能是,你的烦恼是由OPTIONSVerbHandler引起的.
有关详情,请参阅此链接: http://eugeneagafonov.com/post/38312919044/iis-options-cors-aspnet-webapi-en (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 检测到潜在的危险Request.Form值
- asp.net – SignalR/signalr/hubs 404未找到
- asp.net – Sitecore:打开HTML缓存阻止回发行为
- .NET Core的文件系统[1]:读取并监控文件的变化
- asp.net – 什么时候调用Application_End,我该如何手动导致
- asp.net – 实际文化是否与SQL相关联到CLR float-double转换
- asp.net – Session_Start没有解雇
- asp.net-mvc – 在MVC中,部分视图是否继承了父视图的模型?
- asp.net – ASPXAUTH cookie未保存
- asp.net-mvc – 可配置的应用程序洞察检测密钥
- ASP.NET中的Accounting Style字符串格式
- asp.net – 来自masterpage的Html.RenderPartial
- asp.net-mvc-5 – 同一域中的Web API 2项目和MVC
- asp.net-mvc – 更改链接上的部分视图
- 保护某些页面免受ASP.NET中的直接访问
- asp.net-mvc-3 – 将值传递给控制器??时,ASP.NET
- asp.net-mvc-4 – Kendo UI组合框复位值
- asp.net – Visual Studio开发服务器使用错误的端
- asp.net – 使用Cookie进行Web会话状态 – 有哪些
- Asp.net生成Excel文件并下载(更新:解决使用迅雷