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。 我控制了一切,但我找不到任何东西
答案 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。