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");
}
}
});这是我的webservice代码
[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。我控制了一切,但我什么也找不到
发布于 2017-04-13 18:39:13
您已经告诉服务器您正在发布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。
https://stackoverflow.com/questions/43389962
复制相似问题