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

213
Visualizações
La migración de Asp.Net Core 2 a .Net 6 me dio problemas con XMLHttpRequest

Amigos, acabo de migrar mi aplicación ASP.Net Core 2 MVC a .Net 6, pero desde entonces tengo un problema extraño: los textos de mis respuestas XMLHttpRequest siempre están vacíos, "{}" o [{},{},{ },{}] para matrices, a pesar de que mi backend realmente devuelve datos.

Aquí hay un ejemplo de un método de control (TestLoad) que devuelve una clase simple (TestClass). Tenga en cuenta que cuando interrumpo la línea de retorno, el valor devuelto está bien, o al menos no veo nada malo (vea la imagen para ver la información de depuración): backend

 public class TestClass { public int id = 0; public string title = "Title"; public bool active = false; } public JsonResult TestLoad() { TestClass testClass = new TestClass(); testClass.id = 10; testClass.title = "Yeah man!"; testClass.active = true; JsonResult jsonRes = Json(testClass); return jsonRes; }

Pero una vez en el front-end, obtuve un objeto vacío, no indefinido ni nulo, pero realmente un objeto vacío (ver imagen para información de depuración): frontend

 var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) { var dt = JSON.parse(xmlhttp.responseText); if (dt == 'err') { alert('error'); } else if (dt !== null) { alert(dt.title); } } else { alert(xmlhttp.status); } } } ldwait(false, false); xmlhttp.open("GET", rv + "ajxGame/TestLoad", true); xmlhttp.setRequestHeader('Cache-Control', 'no-store'); xmlhttp.setRequestHeader("Content-Type", "application/json"); xmlhttp.send();

Cualquier ayuda sería muy apreciada ya que no tengo ni idea de lo que sucedió. De nuevo, mi código no ha cambiado, pero mi proyecto ha migrado de .Net Core 2 a .Net 6.

Gracias

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

¿Está utilizando páginas de Razor en su Asp.net core 6?

Si es así, la forma en que llama a su método puede ser el problema. Para solicitudes posteriores, llame desde el cliente ?handler=TestLoad y en el servidor asegúrese de que el nombre del método sea OnPostTestLoad() .

Las solicitudes de obtención están deshabilitadas de forma predeterminada y deben habilitarse. Mensaje de advertencia de Microsoft

Para obtener más información, consulte este enlace de documentos de Microsoft


Otro problema puede ser la forma en que devuelves tu clase. Intente devolverlo como un objeto JSON en su lugar.

 return new JsonResult(new {objClass: testClass});

Y en el lado del cliente, obtenga su clase como una propiedad de objeto

 let objClass = result.objClass;
about 4 years ago · Juan Pablo Isaza Relatório

0

agregaría un tipo de respuesta y reemplazaría onreadystatechange con onload

 xmlhttp.responseType = 'json'; xmlhttp.onload = () => { console.log("load - "+ JSON.stringify(xhr.response)); var data = xhr.response; }
about 4 years ago · Juan Pablo Isaza Relatório

0

En realidad, mi error fue simplemente que olvidé agregar { get; establecer; } en cada propiedad de mi TestClass en la parte de backend. Funcionó sin él en .Net Core 2, pero parece que ahora es obligatorio en .Net 6

 public class TestClass { public int id {get; set;} = 0; public string title {get; set;} = "Title"; public bool active {get; set;} = false; }

... gracias a los que intentaron una respuesta!

about 4 years ago · Juan Pablo Isaza 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