Javascript ASP:NET ajax函数在onchange事件后不起作用
我想使用ajax函数显示dropdownlist的选定索引的值。它不起作用。我尝试使用控制台调试它,我看到了错误Javascript ASP:NET ajax函数在onchange事件后不起作用,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,我想使用ajax函数显示dropdownlist的选定索引的值。它不起作用。我尝试使用控制台调试它,我看到了错误500(内部服务器错误)是什么导致了这个问题?实施情况如下 Ajax功能: function showDdlValue(ddl) { var value = ddl.value; $.ajax({ type: "POST", url: "AdminPanel.aspx/getData",
500(内部服务器错误)
是什么导致了这个问题?实施情况如下
Ajax功能:
function showDdlValue(ddl) {
var value = ddl.value;
$.ajax({
type: "POST",
url: "AdminPanel.aspx/getData",
data: '{color: "' + value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
Html:
将webmethod的访问说明符更改为
public
。当我们将其设置为private
function showDdlValue(ddl) {
var value = ddl.value;
$.ajax({
type: "POST",
url: "AdminPanel.aspx/getData",
data: {'color': value },
success: OnSuccess,
failure: function (response) {
alert(response);
}
});
}
function OnSuccess(response) {
alert(response);
}
WEB方法
[System.Web.Services.WebMethod]
public String getData(String color)
{
return "Hello " + color;
}
尝试此操作查看服务器返回的响应…尝试删除
contentType
选项,顺便说一句,您的服务器似乎根本不返回JSON,所以也删除dataType
。但是500(内部服务器错误)
表示错误在服务器端。请注意,我对ASP.net一无所知,因此…。@A.Wolff我删除了这两种类型,但在事件警报框中出现了未定义而不是value@Tartar:undefined
如果你仔细想想,它是有意义的。为什么它没有定义?服务器从未发回应答。为什么它没有给出答案?嗯,你自己说的,有一个内部服务器错误
。那个错误是在哪里发生的<代码>内部。这意味着您的后端引发了异常。您的javascript无法修复这一问题(当然,除非是由于错误的ajax调用)。但要解决这个问题,您需要查看收到的错误消息的其余部分,并在后端检查有问题的代码,而不是在前端。
function showDdlValue(ddl) {
var value = ddl.value;
$.ajax({
type: "POST",
url: "AdminPanel.aspx/getData",
data: {'color': value },
success: OnSuccess,
failure: function (response) {
alert(response);
}
});
}
function OnSuccess(response) {
alert(response);
}
[System.Web.Services.WebMethod]
public String getData(String color)
{
return "Hello " + color;
}