缺少参数名称:adi

时间:2017-04-13 10:35:35

标签: javascript c# jquery ajax

 var email = document.getElementById("mail");
                      var adi = document.getElementById("ad");
                      var tel = document.getElementById("telno");
                      var mesaji = document.getElementById("mesaj");
                      if (email.value !== "" && adi.value !== "" && tel.value !== "" && mesaji.value !== "") {
                      $.ajax({
                          url: "WebService1.asmx/Postala",
                          type: "POST",
                          data: "{ adi:'" + adi.value + "',mail:'" + email.value + "',no:'" + tel.value + "',icerik:'" + mesaji.value + "'}",
                          contentTpye: "application/json; charset=utf-8;",
                          dataType:"json",

                          success: function (msg) {
                              if (msg.d == true) {
                                  swal("Başarılı", "İletiniz Başarıyla Gönderildi", "success");
                                  setInterval(function () { location.reload() }, 1500);
                              }
                              else {
                                  swal("Üzgünüm", "İletiniz Gönderilemedi", "danger");
                              }
                          }

                      });

这是我的网络服务代码

        [WebMethod]
        public bool Postala(string adi,string mail,string no,string icerik)
        {
            List<string> paramsss = new List<string>() { "@ad", "@mail", "@no", "@icerik" };
            List<object> deger = new List<object>() {adi,mail,no,icerik };
            return islem.sqlcalistir("Insert into Mesajlar(mesajatanad,mesajatanmail,mesajatanno,mesajicerik) VALUES(@ad,@mail,@no,@icerik)",paramsss,deger);
        }

我的错误是; System.InvalidOperationException:缺少参数:adi。 我控制了一切,但我找不到任何东西

1 个答案:

答案 0 :(得分:3)

您告诉服务器您正在发布JSON,但您没有发布(有效)JSON。有效的JSON在属性名称周围加上双引号,仅在字符串周围使用"(不是'),并确保正确转义字符串的内容。您手动生成JSON的代码不会执行这些操作。

不要手工序列化JSON;让JSON.stringify为你做:

data: JSON.stringify({
    adi: adi.value,
    mail: email.value,
    no: tel.value,
    icerik: mesaji.value
})

这会创建一个包含这些属性的对象,然后让JSON.stringify为您正确地将其序列化为JSON。