小编典典

Ajax调用未调用服务器端,并且在httpfox中将错误显示为ajax发布调用中的“错误加载内容(NS_ERROR_DOCUMENT_NOT_CACHED)”

ajax

在这里,我从asp.net页面进行了一个简单的ajax发布调用,该调用显示了httpfox上的以下错误。“加载内容时出错(NS_ERROR_DOCUMENT_NOT_CACHED)”和

 error: function () { alert(arguments[2]); }

我的ajax调用显示警报消息为“内部服务器错误”

在这里,我正在创建一个JSON数组并将该json数组转换为JSON字符串,并将其作为参数传递给服务器端方法。

这是我的ajax电话

 $('#btnResult').on('click', function () {
            var myObject = new Object();

            $("#<%=GridProjectDetails.ClientID %>  tr").each(function () {
                var id = $(this).find("input[name*='ID']").val();
                var locationcode = $(this).find("input[name*='TextLocationCode']").val();
                var Location = $(this).find("input[name*='TextLocation']").val();
                myObject.id = id;
                myObject.locationcode = locationcode;
                myObject.Location = Location;
            });

            var myString = JSON.stringify(myObject);
            alert(myString);
            var exportdata = myString;

            $.ajax({
                type: "POST",
                url: "Default.aspx/ExportToExcel",
                data: exportdata,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    $("#Result").text(data.d);
                },
                error: function () { alert(arguments[2]); }
            });
        });
    });

这是我的服务器端代码

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public static string ExportToExcel(string details)
    {

        return "Message : Success";
    }

任何想法 ?这里发生了什么事 ?


阅读 334

收藏
2020-07-26

共1个答案

小编典典

感谢您的所有回复。

今天,在谷歌搜索超过1小时后,我得到了答案。

我学到的东西是在使用stringfy()方法发送json数据时,在服务器端,我们需要将参数定义为对象。没有其他格式,例如string /
int / bla bla .....

实际上我的服务器端参数有一个错误,我将其从字符串修改为对象,并为我工作。在这里,我定义了修改后的答案。

        $('#btnResult').on('click', function () {

        var mydata = [];
        $("#<%=GridProjectDetails.ClientID %>  tr").each(function () {
            var myObject = new Object();
            var id = $(this).find("input[name*='ID']").val();
            var locationcode = $(this).find("input[name*='TextLocationCode']").val();
            var Location = $(this).find("input[name*='TextLocation']").val();
            myObject.id = id;
            myObject.locationcode = locationcode;
            myObject.Location = Location;
            mydata.push(myObject);
        });

        var myString = JSON.stringify({ details: JSON.stringify(mydata) });
        alert(myString);
        var exportdata = myString;

        $.ajax({
            type: "POST",
            url: "Default.aspx/ExportToExcel",
            data: exportdata,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                $("#Result").text(data.d);
            },
            error: function () { alert(arguments[2]); }
        });
    });
});

我的服务器端方法应该是

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ExportToExcel(object details)
{

    return "Message : Success";
}
2020-07-26