ajax json 方法中未定义的错误

本文关键字:错误 未定义 json 方法 ajax | 更新日期: 2023-09-27 18:34:17

我对json方法有问题,它给了我这个错误。这是我的代码:

function test() {
            $.ajax({
                type: "POST",
                url: 'zz.aspx/GetDate',
                //processData: false,
                data: "{'keyWord':" + keyWord + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {   
                    if (msg.length > 0) {

                        $("#suggestions").fadeIn();
                        $("#suggestions").html(msg);
                        setTimeout('ToogleAct();', 500);
                    } else {
                        $("#suggestions").fadeOut();
                        $('#actions').css('display', 'none');
                        alert('ERROR [sasa ]');
                    }
                },
                error: function (xhr, status, error) {
                    alert('ERROR [ ' + error + ' ]');
                }
            });
        } else {
            $("#suggestions").fadeOut();
        }
    }

这是 c# 代码:

 public static string GetDate(string keyWord)
    {
        string S = "";
        DataTable dt = DataLayer.Maghale.Search(keyWord).Tables[0];
        S += "<div id='"SGR'" style='"height: auto;'"><div id='"APL'">";
        foreach (DataRow dr in dt.Rows)
        {
            S += "<a href='"" + dr["Alias"].ToString() + "'">" +
                "<div class='"imageholder'"> " +
                "<img src='"~/MakeThumbnail.aspx?file=~/Images/CustomImages/Seo-S.png&i=80&j=80'")'"></div>" +
                "<span class='"SGSH1'">" + dr["Title"].ToString() + "</span>" +
                "<span class='"SGSH2'"> " + dr["Description"].ToString().Substring(0, 15) + " ... </span></a>";
        }
        S += "</div></div>";
        return S;
    }

当我使用类型:帖子时;然后是我的味精。长度>0 返回假为什么会发生这种情况,我应该怎么做才能返回我的字符串并将其放入 HTML 中?

当我使用 type=GET 时:给我未定义的错误这是发布和获取之间的区别以及我何时应该使用 get 或发布请告诉我,谢谢

ajax json 方法中未定义的错误

您需要正确设置 ajax 调用。您正在将一个字符串传递给 ajax data这是有效的,但我想您想在服务器端使用"keyWord"变量访问提交的值。更改 ajax 的data,如下所示:

data: { keyWord: $.trim($("#txtSearchBox").val()) },

此外,将setTimeout('ToogleAct();', 500);更改为setTimeout(ToogleAct, 500);

如果你看一下这个链接,你会得到post的完整描述get http://www.cs.tut.fi/~jkorpela/forms/methods.html

HTML规范在技术上定义了两者之间的区别 "GET"和"POST",因此前者表示要对表单数据进行编码 (通过浏览器(进入URL,而后者意味着表单数据是 以显示在邮件正文中。但规格也给出了 使用建议在以下情况下应使用"GET"方法 表单处理是"幂等的",并且仅在这些情况下。作为一个 简化,我们可能会说"GET"基本上只是为了获得 (检索(数据,而"POST"可能涉及任何内容,例如存储或 更新数据,或订购产品,或发送电子邮件。

成功后,检查msg.d,使用chrome开发人员工具或Firebug来检查您收到的回复。

我建议的另一件事是,在使用字符串连接时StringBuilder类。因此,与其string +=,不如StringBuilder.Append哪个更有效。