0

以下是我的 JQuery AJAX 方法:

function meFun() {
    alert('enter');

    $.ajax({
        type: "POST",
        url: "About.aspx/GetRes",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Do something interesting here.
            alert(msg);
        }
    });
    alert('end');

}

以下是我的按钮代码:

<input type="button" onclick="meFun();" value="Click me" id="btn" />

Folling 是我在 About.aspx 中的功能

Public Function GetRes() As Boolean
    Return True
End Function

meFun()方法调用成功但不调用,GetRes()AJAX调用不返回任何响应。

知道为什么吗?另外,请提出一种调试此类 AJAX 问题的好方法。

4

2 回答 2

3

首先,确保您的服务器端 GetRes 函数具有 WebMethod 属性(这是在 C# 中,我不知道您如何在 VB 中做到这一点)并使 GetRes 静态(或 VB 中的任何等价物)。

[WebMethod]
public static bool GetRes()
{
  return true;
}

然后,将error处理程序添加到您的 jQueryajax调用中:

$.ajax({
        type: "POST",
        url: "About.aspx/GetRes",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Do something interesting here.
            alert(msg);
        },
        error: function (data) {
        }
    });
    alert('end');

编辑:要调试,在错误处理程序中设置断点并检查data参数。所有浏览器(嗯,我可以保证 IE、Firefox(带有 Firebug)和 Chrome)都有很好的脚本调试器。如果发生错误,将有一个属性data,它的名称目前让我难以理解,它详细解释了错误。

于 2013-03-01T06:01:17.103 回答
1

您正在以字符串格式返回数据,而您的 AJAX 调用期望 JSON 格式,因此在服务器端使用 newtonsoft 库或 asp.net 的内置 jsonconversion 机制将 TRUE 转换为 JSON 格式

正如 svajger 所提到的,您必须将其声明为 webmethod,并且它必须是静态的,返回类型是首选字符串

在成功处理程序中,您必须通过 JSON.parse 方法解析 json 数据

于 2013-03-01T06:13:53.290 回答