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

231
Visualizações
Publicación HTTP en la API web 2: solicitud de opciones recibida y gestionada, no se han recibido más solicitudes

Tengo una aplicación web que usa MVC y AngularJS, que se conecta a una API Web API 2, que configuré en un proyecto separado.

Actualmente puedo recuperar información de la Api sin problemas.

Sin embargo, cuando trato de hacer una publicación HTTP, no obtengo respuesta, originalmente estaba teniendo un problema con la falla de la solicitud previa al vuelo, ahora manejé esto en mi controlador, sin embargo, no envía la solicitud adecuada después de haber recibido un mensaje OK de vuelta.

He incluido mi código para Angular Factory y C# Controller en la API.

 [EnableCors(origins: "*", headers: "*", methods: "*")] public class RegisterController : ApiController { public string Post() { return "success"; } public HttpResponseMessage Options() { return new HttpResponseMessage { StatusCode = HttpStatusCode.OK }; } } var RegistrationFactory = function($http, $q, ApiAddress) { return function(model) { // $http.post(ApiAddress.getApiAddress() + '/Register/Post', model.ToString()); $http({ method: "POST", url: ApiAddress.getApiAddress() + '/Register/Post', data: model, headers: { 'Content-Type': 'application/json; charset=utf-8' } }).success(function(data) { $location.path("/"); }); } }; RegistrationFactory.$inject = ['$http', '$q', 'ApiAddress'];

Editar:

Todavía no tengo ninguna alegría con esto, sin embargo, probé en Internet Explorer y funciona sin ningún problema.

Lo hice funcionar en Chrome al comenzar con la seguridad web deshabilitada, sin embargo, obviamente, esto no es ideal ya que no funcionará en una PC de usuario con la seguridad habilitada.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Veo que ha hecho una adaptación para CORS en el lado del servidor. Pero no puedo ver ninguna adaptación del lado del cliente (javascript). Es posible que deba agregar el código a continuación antes de llamar al servicio.

 $http.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With'];

Déjame saber si esto soluciona el problema. Funcionó para mí en todos los escenarios :)

over 4 years ago · Santiago Trujillo Relatório

0

Es extraño que tus GET funcionen, pero tus POST no.

Recomendaría ejecutar el código en Google Chrome con la seguridad web habilitada (para que podamos ver si sale mal) y con las Opciones de desarrollador F12 que se muestran.

Seleccione la pestaña Red, ejecute su código y observe lo que sucede cuando se llama al POST.

¿Su servicio devuelve un estado "200 OK" o algún otro valor?

¿Se devuelve algún tipo de respuesta?

Puede valer la pena probar esto y agregar una captura de pantalla de los resultados en su pregunta original. Podría ayudar a identificar la causa.

Todavía no tengo ninguna alegría con esto, sin embargo, probé en Internet Explorer y funciona sin ningún problema.

Por cierto, no tiene ninguna configuración de inicio de sesión único en su empresa, ¿verdad? Hemos tenido problemas en los que IE funciona bien, pero otros navegadores no permiten el inicio de sesión único. Solo un pensamiento...

over 4 years ago · Santiago Trujillo Relatório

0

CORS requiere una verificación previa de OPCIONES que tiene encabezados HTTP en su respuesta que le indican al navegador si tiene permiso para acceder al recurso.

Por ejemplo, encabezados de respuesta HTTP:

 Access-Control-Allow-Headers: authorization Access-Control-Allow-Origin: *

Debido a que tiene un controlador de opciones personalizado en su controlador C#, parece que esos encabezados HTTP no se devuelven, lo que detiene el navegador para realizar la llamada después de la verificación previa.

Evite el método de Opciones, y debería ser bueno.

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