EnableCors无法在WebApi中工作

时间:2017-02-09 15:34:53

标签: c# asp.net-web-api cors

我按照aspnet网站教程启用了角色,但我无法让它发挥作用。

WebApiConfig上的注册方法:

  public static void Register(HttpConfiguration config)
  {
        config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
        config.MapHttpAttributeRoutes();
   }

控制器:

 public class TestController : Controller
 {
    [Route("test/{*anything}")]
    public ActionResult Index()
    {
        return Json(new { test = "test message" },
            JsonRequestBehavior.AllowGet);
    }
  }

然后我创建一个简单的网站,其中最小的index.html由nodejs live-server提供ajax请求,当本地调试时它可以正常工作。但是当我将它发布到azure时,我得到以下错误:

  

XMLHttpRequest无法加载http://mysite.azurewebsites.net。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源“http://localhost:8080”访问

修改 我已安装Microsoft.AspNet.WebApi.Cors版本5.2.3

1 个答案:

答案 0 :(得分:3)

好像你正在使用MVC控制器而不是Api控制器(除非它的DotNet核心)。使用操作返回类型ApiControllerIHttpResponseMessage

将基类更改为return Ok (new { test = "test message" });