Saltar al contenido

¿Cómo pasar parámetros en $ajax POST?

Este team de redactores ha pasado mucho tiempo buscando para darle respuesta a tus dudas, te compartimos la resolución por eso deseamos que te resulte de gran apoyo.

Solución:

Te recomendaría que hicieras uso de la $.post o $.get sintaxis de jQuery para casos simples:

$.post('superman',  field1: "hello", field2 : "hello2", 
    function(returnedData)
         console.log(returnedData);
);

Si necesita detectar los casos fallidos, simplemente haga esto:

$.post('superman',  field1: "hello", field2 : "hello2", 
    function(returnedData)
         console.log(returnedData);
).fail(function()
      console.log("error");
);

Además, si siempre envía un JSON stringpuede usar $.getJSON o $.post con un parámetro más al final.

$.post('superman',  field1: "hello", field2 : "hello2", 
     function(returnedData)
        console.log(returnedData);
, 'json');

Intenta usar el método GET,

var request = $.ajax(
    url: 'url',
    type: 'GET',
    data:  field1: "hello", field2 : "hello2" ,
    contentType: 'application/json; charset=utf-8'
);

request.done(function(data) 
      // your success code here
);

request.fail(function(jqXHR, textStatus) 
      // your failure code here
);

No puede ver los parámetros en la URL con el método POST.

Editar:

Aviso de desaprobación: Las devoluciones de llamada jqXHR.success(), jqXHR.error() y jqXHR.complete() se eliminan a partir de jQuery 3.0. Puede usar jqXHR.done(), jqXHR.fail() y jqXHR.always() en su lugar.

Jquery.ajax no codifica automáticamente los datos POST de la misma forma que lo hace con los datos GET. Jquery espera que sus datos estén preformateados para anexarse ​​al cuerpo de la solicitud y enviarse directamente a través de la red.

Una solución es usar la función jQuery.param para construir una consulta string que esperan la mayoría de los scripts que procesan solicitudes POST.

$.ajax(
    url: 'superman',
    type: 'POST',
    data: jQuery.param( field1: "hello", field2 : "hello2") ,
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    success: function (response) 
        alert(response.status);
    ,
    error: function () 
        alert("error");
    
); 

En este caso el param El método formatea los datos para:

field1=hello&field2=hello2

La documentación de Jquery.ajax dice que hay un indicador llamado processData que controla si esta codificación se realiza automáticamente o no. La documentación dice que por defecto es truepero ese no es el comportamiento que observo cuando POST se usa

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *