在这里,我从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"; }
任何想法 ?这里发生了什么事 ?
感谢您的所有回复。
今天,在谷歌搜索超过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"; }