leer example datatype jquery ajax json

example - jquery AJAX y json format



jquery json to string (3)

Actualmente está enviando los datos como valores POST típicos, que se parecen a esto:

first_name=somename&last_name=somesurname

Si desea enviar datos como json, debe crear un objeto con datos y alinearlo.

data: JSON.stringify(someobject)

Tengo un servicio web que espera recibir json, así:

{"first_name":"test","last_name":"teste","email":"[email protected]","mobile":"+44 22 2222 2222", "password":"testing"}

Mi llamada ajax en jquery:

$.ajax({ type: "POST", url: hb_base_url + "consumer", contentType: "application/json", dataType: "json", data: { first_name: $("#namec").val(), last_name: $("#surnamec").val(), email: $("#emailc").val(), mobile: $("#numberc").val(), password: $("#passwordc").val() }, success: function(response) { console.log(response); }, error: function(response) { console.log(response); } });

¿Hay alguna forma de verificar el formato en el que se envían mis datos? Se supone que no estoy enviando el JSON correcto al servidor (ese es el primer paso en la validación).

¿Mi código jquery está enviando JSON válido o me perdí algo?


En realidad no estás enviando a JSON. Usted está pasando un objeto como data , pero necesita unificar el objeto y pasar la cadena en su lugar.

Su tipo de datos dataType: "json" solo le dice a jQuery que desea que analice el JSON devuelto, esto no significa que jQuery alineará automáticamente los datos de su solicitud.

Cambiar a:

$.ajax({ type: "POST", url: hb_base_url + "consumer", contentType: "application/json", dataType: "json", data: JSON.stringify({ first_name: $("#namec").val(), last_name: $("#surnamec").val(), email: $("#emailc").val(), mobile: $("#numberc").val(), password: $("#passwordc").val() }), success: function(response) { console.log(response); }, error: function(response) { console.log(response); } });


Nunca tuve suerte con ese enfoque. Siempre hago esto (espero que esto ayude):

var obj = {}; obj.first_name = $("#namec").val(); obj.last_name = $("#surnamec").val(); obj.email = $("#emailc").val(); obj.mobile = $("#numberc").val(); obj.password = $("#passwordc").val();

Entonces en tu ajax:

$.ajax({ type: "POST", url: hb_base_url + "consumer", contentType: "application/json", dataType: "json", data: JSON.stringify(obj), success: function(response) { console.log(response); }, error: function(response) { console.log(response); } });