He seguido el tutorial como se indica en este enlace. En el código de abajo por alguna razón los datos no se añaden a la url como parámetros, pero si los pongo directamente en la url usando `/?field1="hola"funciona.
$.ajax({
url: 'superman',
type: 'POST',
data: { field1: "hello", field2 : "hello2"} ,
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(response.status);
},
error: function () {
alert("error");
}
});
Te recomendaría hacer uso de la sintaxis $.post
o $.get
de jQuery para casos sencillos:
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
});
Si necesitas atrapar los casos de fallo, sólo tienes que hacer esto:
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
}).fail(function(){
console.log("error");
});
Además, si siempre envías una cadena JSON, puedes utilizar $.getJSON o $.post con un parámetro más al final.
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
}, 'json');
Prueba a utilizar 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: Notificación de declinación: Los callbacks jqXHR.success(), jqXHR.error(), y jqXHR.complete() se han eliminado a partir de jQuery 3.0. Puede utilizar jqXHR.done(), jqXHR.fail() y jqXHR.always().
En una petición POST, los parámetros se envían en el cuerpo de la petición, por eso no los ve en la URL.
Si quiere verlos, cambie
type: 'POST',
a
type: 'GET',
Ten en cuenta que los navegadores tienen herramientas de desarrollo que te permiten ver las peticiones completas que emite tu código. En Chrome, está en el panel "Red".