Я пытаюсь перейти от обычного запроса mootools к запросу. JSON, поскольку я использую исключительно json для связи между клиентом и моим сервером. У меня есть запрос json, определенный как:
var jsonRequest = new Request.JSON({
url: '/ServletContext/servlet',
onRequest: function(){
// Just a class to make the cursor change to progress
container.addClass('request-waiting');
},
// validationMessages should be a json object containing
// messages on problems validating user input from server
onSuccess: function(validationMessages){
container.removeClass('request-waiting');
},
onFailure: function(requestObj){
container.removeClass('request-waiting');
}
}).post({'context': context,'title': title});
В настоящее время я тестирую это в chrome, и запрос отправляется нормально, и я возвращаю http 200 с ожидаемым содержимым; но обратный вызов onFailure продолжает вызываться. Мне интересно, почему метод onSuccess не вызывается.
Строка json, которую я отправляю обратно (намеренно) в ответе:
"{titleErrors: [], contextErrors: ['Context must be more than 40 characters']}"
Я использую mootools 1.3 и tomcat 7.
РЕДАКТИРОВАТЬ: После небольшого поднятия стека mootools, я нашел вызов json.decode, и это не удалось. Я предполагаю, что это потому, что моя строка JSON искажена. Я не использовал json так долго, так что меня это не удивит, но я бы подумал, что это сработает. Я смотрю на это, но если вы сможете взглянуть на мой JSON и увидеть проблему, то это будет оценено.