Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

280
Visualizações
Tipo de medio no admitido ASP.NET Core Web API

En el front-end, uso Angular para recopilar algunos datos del formulario y enviarlos a mis controladores del lado del servidor. Como se muestra en la imagen a continuación, obtengo los datos ($scope.newData) en mi controlador y servicio, pero cuando llega al servidor, aparece el siguiente error: "Tipo de medio no compatible" y mi newData está vacío.

Consola del sitio web

Mi controlador:

 // Create new salesman $scope.addSalesman = function (newData) { console.log("Controller"); console.log($scope.newData); myService.addNewSalesman($scope.newData).then(function (data) { console.log(data); }, function (err) { console.log(err); }); };

mi servicio:

 addNewSalesman: function (newData) { console.log("service"); console.log(newData) var deferred = $q.defer(); $http({ method: 'POST', url: '/api/Salesman', headers: { 'Content-type': 'application/json' } }, newData).then(function (res) { deferred.resolve(res.data); }, function (res) { deferred.reject(res); }); return deferred.promise; }

Mi modelo de vendedor:

 public class Salesman { public int SalesmanID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Gender { get; set; } public string BirthDate { get; set; } public int Phone { get; set; } public string Adress { get; set; } public string City { get; set; } public int Postal { get; set; } public string Role { get; set; } }

Mi controlador del lado del servidor:

 [Route("api/[controller]")] public class SalesmanController : Controller { private readonly DataAccess _DataAccess; public SalesmanController() { _DataAccess = new DataAccess(); } [HttpPost] public IActionResult PostSalesman([FromBody] Salesman newData) { return Ok(newData); }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Simplemente reemplace [FromBody] a [FromForm] en su controlador.

over 4 years ago · Santiago Trujillo Relatório

0

El encabezado que estás enviando es incorrecto. Está enviando Content-Type: application/json , pero debe enviar Accept: application/json .

Content-Type: application/json es lo que el servidor debe enviar al cliente y el cliente debe enviar Accept para decirle al servidor qué tipo de respuesta acepta.

 addNewSalesman: function (newData) { console.log("service"); console.log(newData) var deferred = $q.defer(); $http({ method: 'POST', url: '/api/Salesman', headers: { 'Accept': 'application/json' } }, newData).then(function (res) { deferred.resolve(res.data); }, function (res) { deferred.reject(res); }); return deferred.promise; }

Deberías hacerlo. Consulte también " Negociación de contenido " en MDN.

over 4 years ago · Santiago Trujillo Relatório

0

Este es un problema de CORS.

Durante el desarrollo, es seguro aceptar todos los métodos de solicitud http de todos los orígenes. Agregue lo siguiente a su startup.cs:

 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); //Accept All HTTP Request Methods from all origins app.UseCors(builder => builder.AllowAnyHeader().AllowAnyOrigin().AllowAnyMethod()); app.UseMvc(); }

Consulte aquí para obtener más detalles sobre CORS.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda