为什么这个基本的json调用不起作用?

时间:2011-11-07 16:00:53

标签: ajax vb.net json model-view-controller

以下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 个答案:

答案 0 :(得分:3)

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错误处理程序将不会触发