jQuery getJSON-запрос, возвращающий пустой ответ - тот же домен - PullRequest
3 голосов
/ 05 июля 2011

Я некоторое время искал объяснение этой проблемы, но не нашел, где ...

У меня есть запрос jQuery getJSON:

$.getJSON("http://localhost:8080/context/json/removeEntity.html", {
    contentId : 1,
    entIndex : entityIndex
}, onRemoveEntityResponse);

Сделано из URL: http://localhost:8080/context/entity.html?contentId=2 ( тот же домен и порт ).

Мой ответ, увиденный через firebug в Firefox (5) и Chrome, пуст.Также интересно то, что я поставил точку останова в своем Java-коде, который обслуживает запрос JSON, и это попадание, но только после того, как Firefox решит, что запрос завершен.

У меня также естьотлажены некоторые из jQuery, и вот некоторые переменные, вовлеченные в обработку ответов AJAX (jQuery 1.5.2 не минимизирован):

[Line: 6651] deferred.rejectWith (callbackContext, [jqXHR, statusText, ошибка])

jqXHR: { readyState:0, responseText:"", status:0, statusText:"error", ...})
statusText: "error"
error: ""

Есть идеи?Заранее спасибо.

Редактировать:

Игнорировать тот факт, что URL запрашивает файл HTML, это не совсем HTML, мы используем Tiles с SpringMVC для обеспечения сопоставления файлов JSP и контроллеров Java.

JSON, который должен быть возвращен моим контроллером Java, выглядит следующим образом (и если я перехожу к URL-адресу напрямую):

{"oldEntityIndex":1,"isSuccess":true,"entityWasSaved":false}

1 Ответ

1 голос
/ 06 июля 2011

Моя глупость - в плагине jQuery, который я написал (и включил в ответ здесь ), была ошибка.

Плагин удалил атрибут onclick элемента, который отправил запрос AJAX, и связал его с помощью jQuery bind, но то, что я забыл сделать с обработчиком onclick, это вернуть результат,Следовательно, мой обработчик onclick, возвращающий false и не позволяющий браузеру следовать по базовой ссылке, был проигнорирован, я думаю, что браузер затем отменил запрос AJAX, так как знал, что собирается перейти на новую страницу.

Потраченное время!К сожалению.

...