C# 支持使用ApicController,但不支持控制器.NET Framework 4.7.2
在我的项目中,我有两种类型的控制器C# 支持使用ApicController,但不支持控制器.NET Framework 4.7.2,c#,.net,cross-domain,C#,.net,Cross Domain,在我的项目中,我有两种类型的控制器 公共类BaseApiController:ApicController 公共类BaseController:控制器 从角度看,我可以访问APIController,但无法访问控制器。获取跨源请求的错误被阻止。 尽管启用了交叉原点,因为我可以访问APIController var cors = new EnableCorsAttribute( origins: "*", headers: &qu
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
知道访问控制器还需要什么设置吗
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
提前感谢。我从这个URL获得了@Fitch建议的解决方案。 创建一个类,如下所示
using System;
using System.Web.Mvc;
public class AllowCrossSiteAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:4200");
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "*");
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Credentials", "true");
base.OnActionExecuting(filterContext);
}
}
并添加如下属性
[Helpers.AllowCrossSite]
public JsonResult GetDetails()
{
return Json(new
{
name = "",
address = "",
// ... more properties
}, JsonRequestBehavior.AllowGet);
}
您是否尝试在web.config中添加“Access Control Allow Origin”?选项请求是否成功?@Giox,是的,我也尝试过,但根本不起作用,即使ApicController停止工作。@CaiusJard,是的,ApicController选项请求返回200,但没有返回Controller@CaiusJard,不,那些多余的空间不应该在那里,看起来在发布答案时出错了,我已经纠正了。