У меня есть контроллер, созданный с шаблоном WebApi по умолчанию.Он создает один метод записи, подобный этому:
// POST: api/PedidosVenta
[HttpPost]
[ResponseType(typeof(PedidoVentaDTO))]
public async Task<IHttpActionResult> PostPedidoVenta(PedidoVentaDTO pedido)
В это время CORS работал нормально с моего компьютера и из разных доменов.Затем мне понадобился второй метод сообщения с другим маршрутом, и я создал его следующим образом:
[HttpPost]
[EnableCors(origins: "*", headers: "*", methods: "POST")]
[Route("api/PedidosVenta/SePuedeServirPorAgencia")]
public async Task<RespuestaAgencia> SePuedeServirPorAgencia(PedidoVentaDTO pedido)
Он отлично работает на моем компьютере, даже когда я вызываю этот метод, но когда я пытаюсь запустить из другогодомен, он выдает ошибки CORS (только когда я вызываю этот метод, все остальные работают нормально).
Я не могу решить эту проблему, поэтому я уверен, что упускаю что-то важное.Кто-нибудь может мне помочь правильно настроить cors в этом методе, пожалуйста?
Спасибо
ОБНОВЛЕНИЕ: Я вставляю код WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
var cors = new System.Web.Http.Cors.EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
}
}