Q:

Missing Parameter Name:adi

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

                      });

And this is my webservice code
        [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);
        }

My Error is ; System.InvalidOperationException: Missing Parameter: adi.
I controlled everything but I couldnt find anything

A:

You've told the server you're posting JSON, but you're not posting (valid) JSON. Valid JSON puts double quotes around property names, only uses " (not ') around strings, and ensures that the content of strings is properly escaped. Your code producing the JSON by hand doesn't do those things.
Don't hand-serialize JSON; let JSON.stringify do it for you:
data: JSON.stringify({
    adi: adi.value,
    mail: email.value,
    no: tel.value,
    icerik: mesaji.value
})

That creates an object with those properties, then lets JSON.stringify properly serialize it to JSON for you.

