Como um complemento, para aqueles que podem encontrar o mesmo problema que o meu, estou usando $.ajaxpara postar dados do formulário no servidor e também obtive o 400erro no início.
Suponha que eu tenho uma variável javascript,
var formData = {
"name":"Gearon",
"hobby":"Be different"
};
Não use a variável formDatadiretamente como o valor da chave datacomo abaixo:
$.ajax({
type: "post",
dataType: "json",
url: "http://localhost/user/add",
contentType: "application/json",
data: formData,
success: function(data, textStatus){
alert("Data: " + data + "\nStatus: " + status);
}
});
Em vez disso, use JSON.stringify para encapsular o formDataseguinte:
$.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 qualquer forma, como outros ilustraram, o erro ocorre porque o servidor não pôde reconhecer a solicitação que causava sintaxe malformada; estou apenas levantando uma instância na prática. Espero que seja útil para alguém.
Roman, eles só precisam de pagar mais :)