通过ajax接收json

Receiving json via ajax asp.net

本文关键字:json 接收 ajax 通过      更新时间:2023-09-26

我的变量数据在函数ShowFavorits是未定义的,即使我的ajax调用返回json字符串。

<script type="text/javascript">
$(document).ready(function () {
    ShowFavorits();
    function AjaxGet() {
        var param = "{'_userID': '1337'}";
        $.ajax({
            type: "POST",
            url: "/webservices/MinSide.asmx/GetFavorits",
            data: param,
            contentType: "application/json;",
            dataType: "json",
            success: function (data) {
                if (data.hasOwnProperty("d")) {                      
                    return (data.d);
                }
            },
            error: function (data) {
                //error
            }
        });
    }
    function ShowFavorits() {
        var data = AjaxGet();
        $("#addedList").html(
        $("#addedTemplate").render(data)
        );
    }
});

        [WebMethod]
    public string GetFavorits(string _userID)
    {
        JavaScriptSerializer jss = new JavaScriptSerializer();
        jss.MaxJsonLength = int.MaxValue;
        string JsonData = string.Empty;
        var db = new ModelDataContext();
        var list = db.table.Where(x => x.userID == _userID).OrderBy(x=> x.TimePin).ToList();
        JsonData = jss.Serialize(list);  
        return (JsonData);
    }

为什么我不能从我的ajax返回结果?

希望有人能帮助我,已经被卡住了几个小时,现在调试这个

AjaxGet$.ajax的调用是异步的:函数返回undefined,因为ajax调用尚未完成。

您应该将对ShowFavourits的调用移动到ajax成功函数中,以便它在ajax调用完成/成功后执行

<script type="text/javascript">
$(document).ready(function () {
    // Kick-off the ajax request
    AjaxGet();
    function AjaxGet() {
        var param = {_userID: '1337'};
        $.ajax({
            type: "POST",
            url: "/webservices/MinSide.asmx/GetFavorits",
            data: param,
            dataType: "json",
            success: function (data) {
                if (data.hasOwnProperty("d")) {                      
                    ShowFavorits(data.d); // Pass the data to the template
                }
            }
        });
    }
    function ShowFavorits(data) {
        $("#addedList").html(
            $("#addedTemplate").render(data)
        );
    }
});