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 MVC 项目

asp.net mvc3发布(部署)问题。vs2012发布项目缺少文件夹、发布后部署在iis7上网站无法运行

关于Asp.net mvc的诡异问题

iis 5.1 部署.NET MVC 问题

将 ASP.NET MVC NHibernate 应用程序部署到 IIS7 时出错

我可以在 .NET Framework 4.0 上运行 MVC 5 应用程序吗?