0

我用谷歌搜索了很多类似的情况,但没有一个能解决我的问题。请看一下我的代码:

JavaScript:

    $.ajax({
        type: 'POST',
        url: 'alarmInfo.aspx',
        data: {request:'BasicGpaInfo'},
        dataType: "json",
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("Error in loading alarm information!");
        }
    });

ASP.NET:

    protected void Page_Load(object sender, EventArgs e)
    {
            if (Request.Form["request"] == "BasicGpaInfo")
            {
                Response.Write(BasicGpaInfo());
            }
            else
            {
                Response.Write("Nothing");
            }
    }

这总是返回 "Nothing" 并且断点告诉它Request.Form是 null。我已经尝试过GET并且Request.QueryString给出了相同的情况。

我想dataajax 函数有问题,我尝试了以下无济于事的事情:

        data: $.param({request:'BasicGpaInfo'})
        data: "{request:'BasicGpaInfo'}"
        data: {request:'BasicGpaInfo'}

它不适用于所有 Web 浏览器。

请给一些建议。谢谢!

4

2 回答 2

1

我测试了你的代码,它运行良好。但是它总是返回“加载警报信息时出错!” 因为您没有从服务器返回 Json。

Javascript很好,一旦你返回json,它就会成功。

您正在返回整个页面,并且您的 ajax 方法正在从 BasicGpaInfo() 获取整个 html 而不是 Json

尝试在警报中设置断点,您将看到所有数据都在数据中

error: function (data) {
alert("Error in loading alarm information!");
}

或者尝试

error: function (data) {
alert(data);
}

这是完整的代码

$.ajax({
                type: 'POST',
                url: 'Default.aspx/BasicGpaInfoWebMethod',
                data: { request: 'BasicGpaInfo' },
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert(data);
                },
                error: function (data) {
                    alert("Error in loading alarm information!");
                    //alert(data); // uncomment to see the whole response
                }
            });

你的网络方法将是:

 [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string BasicGpaInfoWebMethod(string request)
    {
        return request;
    }
于 2012-08-03T07:22:26.853 回答
0

在发布之前尝试这个 JSON.stringify。为了在 IE<=7 中使用 JSON.stringify,请包含来自 json.org 的 json2.js 文件

 $.ajax({
        type: 'POST',
        url: 'alarmInfo.aspx',
        data: JSON.stringify({ request: 'BasicGpaInfo'}),
        dataType: "json",
        success: function (data) {
            alert(data);
        },
        error: function () {
            alert("Error in loading alarm information!");
        }
    });
于 2012-08-03T07:10:45.980 回答