Ajax post数据到服务器端-错误500内部服务器错误
本文关键字:错误 内部 服务器 服务器端 post 数据 Ajax | 更新日期: 2023-09-27 18:03:27
我有一个文本框列表,我得到与jquery,我试图通过一个模型将它们发送到服务器端。
我在服务器端设置了一个断点(webmethod),但它不会击中…
帮助吗?
这是来自页面的代码:
function CreareCont() {
var model = {};
model.Nume = txtNume.val();
model.Prenume = txtPrenume.val();
model.CNPsauCUI = txtCNPsauCUI.val();
model.Strada = txtStrada.val();
model.Numar = txtNumar.val();
model.Etaj = txtEmail.val();
model.Apartament = txtApartament.val();
model.Oras = txtOras.val();
model.SectorSauJudet = txtSectorSauJudet.val();
model.Telefon = txtTelefon.val();
model.Email = txtEmail.val();
model.Parola = txtParola.val();
$.ajax({
type: "POST", url: webservicePageUrl + "/CreareCont",
data: JSON.stringify(model),
contentType: "application/json; charset=utf-8", dataType: "json",
success: OnSuccessCall1, error: OnErrorCall1
});
};
function OnSuccessCall1(response) { alert(response.d); };
function OnErrorCall1(response) { alert(response.status + " " + response.statusText); debugger; };
我可以从控制台看到,模型发送似乎是好的,它的值是:
{"Nume":"asd","Prenume":"asd","CNPsauCUI":"asd","Strada":"asd","Numar":"asd","Etaj":"asd","Apartament":"asd","Oras":"asd","SectorSauJudet":"asd","Telefon":"asd","Email":"asd","Parola":"asdasd123"}
这是webservice代码:
[WebMethod]
public void CreareCont(Inregistrare user)
{
string hash = helper.GetSHA1HashData("123");
}
模型是一个c#类:
public class Inregistrare
{
string Nume { get; set; }
string Prenume { get; set; }
string CNPsauCUI { get; set; }
string Strada { get; set; }
string Numar { get; set; }
string Etaj { get; set; }
string Apartament { get; set; }
string Oras { get; set; }
string SectorSauJudet { get; set; }
string Telefon { get; set; }
string Email { get; set; }
string Parola { get; set; }
}
}
使用fiddler后,我得到了这个错误:{"消息":"无效的web服务调用,缺少参数值:'u0027user'u0027.","StackTrace":" at System.Web.Script.Services.WebServiceMethodData. "'r'n在System.Web.Script.Services.WebServiceMethodData。调用方法从rawparams(对象目标,字典'2参数)'r'n在System.Web.Script.Services.RestHandler。'r'n在System.Web.Script.Services.RestHandler. HttpContext . context, WebServiceMethodData . methodData,字典'2 rawParams 'r'nExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System. exe "InvalidOperationException"}
你的webmethod需要是Static,除非它是在asmx
public static void CreareCont(Inregistrare user)
和json data需要与webmethod的参数
同名。data: '{"user":'+ JSON.stringify(model)+ '}'
在你的类属性中包含Public
,如public string Nume { get; set; }
,它需要在类对象中反序列化json
试试这个代码
js
function CreareCont() {
var model = {};
model.Nume = txtNume.val();
model.Prenume = txtPrenume.val();
model.CNPsauCUI = txtCNPsauCUI.val();
model.Strada = txtStrada.val();
model.Numar = txtNumar.val();
model.Etaj = txtEmail.val();
model.Apartament = txtApartament.val();
model.Oras = txtOras.val();
model.SectorSauJudet = txtSectorSauJudet.val();
model.Telefon = txtTelefon.val();
model.Email = txtEmail.val();
model.Parola = txtParola.val();
$.ajax({
type: "POST", url: webservicePageUrl + "/CreareCont",
data: '{"user":'+ JSON.stringify(model)+ '}',
contentType: "application/json; charset=utf-8", dataType: "json",
success: OnSuccessCall1, error: OnErrorCall1
});
};
cs [WebMethod]
public static void CreareCont(Inregistrare user)
{
string hash = helper.GetSHA1HashData("123");
}
public class Inregistrare
{
public string Nume { get; set; }
public string Prenume { get; set; }
public string CNPsauCUI { get; set; }
public string Strada { get; set; }
public string Numar { get; set; }
public string Etaj { get; set; }
public string Apartament { get; set; }
public string Oras { get; set; }
public string SectorSauJudet { get; set; }
public string Telefon { get; set; }
public string Email { get; set; }
public string Parola { get; set; }
}