2017-02-09 4 views
3

Я следил за учебником сайта aspnet, чтобы включить cors, и я не могу заставить его работать.EnableCors не работает в WebApi

метод Регистрация на 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 жить-сервер делает запрос Ajax и его работает нормально, когда debuggin локально. Но когда я публикую его на azure, я получаю следующую ошибку:

XMLHttpRequest не может загрузить http://mysite.azurewebsites.net. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение «http://localhost:8080» поэтому не разрешен доступ

EDIT: Я установил версию Microsoft.AspNet.WebApi.Cors5.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 контроллер вместо Api контроллера (если его DotNet ядро). Измените базовый класс на ApiController с действительным типом возврата IHttpResponseMessage и return Ok (new { test = "test message" });

Смежные вопросы