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"}

Ajax post数据到服务器端-错误500内部服务器错误

你的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; }
}