2017-02-09 48 views
3

我跟着aspnet網站教程啓用Cors,我不能得到它的工作。在WebApiConfigEnableCors不能在WebApi工作

註冊方法:

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住服務器做出一個Ajax請求,並將其在本地調試時工作正常。但是,當我發佈到天藍,我得到以下錯誤:

XMLHttpRequest無法加載http://mysite.azurewebsites.net。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此,原產地「http://localhost:8080」是不允許訪問

編輯: 我已經安裝了Microsoft.AspNet.WebApi.Cors版本5.2.3

+1

這是您的api控制器或mvc控制器?除非你使用DotNet Core,否則基類應該是ApiController – Developer

+0

也許相關http://stackoverflow.com/questions/35432709/application-using-cors-does-not-work-in-azure – Hackerman

+0

這是一個mvc控制器,我現在看到,但該項目是一個webapi項目。 – gog

回答

3

好像你正在使用MVC控制器,而不是阿比控制器(除非其DOTNET的核心)。更改基類到ApiController與行動返回類型IHttpResponseMessagereturn Ok (new { test = "test message" });