Como complemento, para aquellos que podrían tener el mismo problema que el mío, estoy usando $.ajaxpara publicar datos del formulario en el servidor y también recibí el 400error al principio.
Supongamos que tengo una variable de JavaScript,
var formData = {
"name":"Gearon",
"hobby":"Be different"
};
No use la variable formDatadirectamente como el valor de la clave datacomo a continuación:
$.ajax({
type: "post",
dataType: "json",
url: "http://localhost/user/add",
contentType: "application/json",
data: formData,
success: function(data, textStatus){
alert("Data: " + data + "\nStatus: " + status);
}
});
En su lugar, use JSON.stringify para encapsular lo formDatasiguiente:
$.ajax({
type: "post",
dataType: "json",
url: "http://localhost/user/add",
contentType: "application/json",
data: JSON.stringify(formData),
success: function(data, textStatus){
alert("Data: " + data + "\nStatus: " + status);
}
});
De todos modos, como otros han ilustrado, el error se debe a que el servidor no pudo reconocer que la solicitud causaba una sintaxis incorrecta, solo estoy planteando una instancia en la práctica. Espero que sea útil para alguien.
Roman, solo necesitan pagarle más :)