MVC .Net 项目在真实服务器上部署时没有“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】MVC .Net 项目在真实服务器上部署时没有“Access-Control-Allow-Origin”标头【英文标题】:MVC .Net project have no 'Access-Control-Allow-Origin' header when deploy on real server 【发布时间】:2014-12-06 18:19:54 【问题描述】:我在 Sencha 和 MVC4 .Net 上使用 Ajax。发生此错误:
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许 Origin 访问。
我添加了这个属性
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
public override void OnActionExecuting(ActionExecutingContext filterContext)
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
base.OnActionExecuting(filterContext);
.
然后我将它分配给我的控制器。它在我的本地主机调试中完美运行,但是当我将此项目的所有代码部署到我的服务器(IIS6、.NET 4.0)时。错误卷土重来。 那么你能告诉我在我的真实服务器中发生错误的不同之处吗?
【问题讨论】:
【参考方案1】:我在 CORS 请求中看到过这种情况...也许将 useDefaultXhrHeader 设置为 false 会有所帮助。
【讨论】:
以上是关于MVC .Net 项目在真实服务器上部署时没有“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
asp.net mvc3发布(部署)问题。vs2012发布项目缺少文件夹、发布后部署在iis7上网站无法运行