es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El enlace Ajax no envía una solicitud POST

Tengo el siguiente enlace ajax:

@Html.AjaxActionLink(item.Name, “https://test.testspace.space/storage/Data/stream?tokenValue=e58367c8-ec11-4c19-995a-f37ad236e0d2&fileId=2693&position=0”, new AjaxOptions { HttpMethod = “POST” })

Sin embargo, aunque está configurado como POST, parece que todavía envía una solicitud GET.

ACTUALIZACIÓN:

Como se sugirió abajo, también intenté con una función de JavaScript como esta:

function DownloadAsset() {
alert(“descargando”);
$.ajax({
type: “POST”,
url: ‘https://test.testspace.space/storage/Data/stream?tokenValue=add899c5-7851-4416-9b06-4587528a72db&fileId=2693&position=0’,
success: function () {
}

});

}

Sin embargo, todavía parece ser una solicitud GET. Los parámetros deben pasarse como consulta y no en el cuerpo de la solicitud porque así lo espera la acción de destino. No sé por qué (sería más natural tener una solicitud GET), pero el desarrollador del back-end lo diseñó así debido a alguna razón de seguridad.

Si uso un formulario razor como este, entonces funciona:

Sin embargo, no puedo usar esto porque ya tengo un formulario externo más grande en la página y terminaré con formularios anidados, lo cual no está permitido por razor/asp.

La única forma es usar JavaScript, pero por alguna razón no realiza una solicitud POST.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el enlace ajax proporcionado no funciona correctamente, ya que sigue enviando una solicitud GET aunque esté configurado como POST. Se recomienda intentar usar una función de JavaScript, como se muestra en la actualización proporcionada, pero sigue sin realizar una solicitud POST. El desarrollador backend lo ha diseñado de tal manera que los parámetros deben pasarse como consulta y no en el cuerpo de la solicitud debido a alguna razón de seguridad. Usar un formulario razor funciona, pero no se puede utilizar debido a la existencia de un formulario exterior más grande en la página, lo que resulta en formularios anidados que no están permitidos por razor/asp. Por lo tanto, la única manera de realizar una solicitud POST es encontrar una solución que funcione con JavaScript, o modificar el código backend para permitir solicitudes POST con parámetros en el cuerpo.

Comments are closed.