繁体   English   中英

将AJAX请求发送到.aspx页面并返回JSON

[英]Send AJAX request to .aspx page and return JSON

我知道可以向.asmx页面发送AJAX请求。 我还知道.asmx页面通过Web方法处理AJAX请求。

是否也可以向.aspx页面发送AJAX请求? 如果是这样, .aspx页面是否也通过Web方法处理AJAX请求? 请注意,我想从.aspx页面返回JSON响应。 这可能吗?

您可以在.aspx页面的代码隐藏中定义Web方法,然后调用它们:

[WebMethod]
public static string doSomething(int id)
{
    ...
    return "hello";
}

然后,在jQuery代码中调用web方法:

$.ajax({
    type: "POST",
    url: "YourPage.aspx/doSomething",
    data: "{'id':'1'}",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (data) {
        var returnedstring = data.d;
        var jsondata = $.parseJSON(data.d);//if you want your data in json
    }
});

是一个很好的入门链接。

如果我正确理解问题,Aspx与HTML相同。 它将呈现为HTML。 但唯一的区别是服务器端和控件保留状态机制的状态。

所以你可以做jquery $.ajax()函数。

$.ajax({
     url: UrlToGetData,
     dataType:'json',
     success:function(data){
             //do some thing with data. 
           }
});

或者如果要将json值写入响应,则使用Response.ContentType首先使用任何Javascript序列化程序(JSON.NET),然后像这样设置contentType。

Response.ContentType="application/json";
 $.ajax({
            url: "(aspx page name/method to be called from the aspx.cs page)",
            type: "POST",
            dataType: "json",
            data: $.toJSON(jsonData),
            contentType: "application/json; charset=utf-8",
            success: function (data, textStatus, jqXHR) {
                 //TO DO after success
        }
});

试试上面的代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM