Почему этот базовый вызов JSON не работает? - PullRequest
0 голосов
/ 07 ноября 2011

Следующий вызов JSON всегда попадает в обработчик ошибок AJAX, и я не могу понять, почему:

$.ajax({
    type: "GET",
    url: '<%= Url.Action("MyTest", "Detail") %>',
    dataType: "json",
    error: function (xhr, status, error) {
        alert(xhr + " | " + status + " | " + error);
    },
    success: function (json) {
        alert(json);
    }
});

Все, что я получаю, это Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:4497/Detail/MyTest?_=1320681138394

Когда я устанавливаю точку остановав контроллере я вижу, что это достигается, поэтому я не уверен, куда падает запрос.Вот действие в DetailController:

Function MyTest() As JsonResult
    Return Json("Hello")
End Function

Есть идеи?

1 Ответ

3 голосов
/ 07 ноября 2011

Обработчик ошибок jQuery сработал, поскольку ему не удалось проанализировать возвращенную страницу как допустимый JSON. Поскольку вы получаете 500 внутренних ошибок сервера, скорее всего, страница не содержит действительный JSON.

Загрузите эту страницу в браузер и исправьте ее, пока она не выдаст действительный json:

http://localhost:4497/Detail/MyTest

После того, как он предоставит действительный json в браузере, попробуйте вызов jQuery ajax.

Я понятия не имею даже о базовых функциональных возможностях VB.NET, но вы можете сделать так, чтобы единственное, что напечатано на http://localhost:4497/Detail/MyTest, было похоже на

print( '{"message":"hello"}' );

Если на странице выводится только {"message":"hello"}, то обработчик ошибок json не будет запускаться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...