【问题标题】:Facing error in insertion while using webservices and ajax jquery在使用 webservices 和 ajax jquery 时面临插入错误
【发布时间】:2019-04-10 22:36:45
【问题描述】:

当我用 HTML 填写表格时,我遇到了 500 的错误。我的网络服务不工作。当我复制粘贴 URL 并在新表中打开时,它会显示以下错误。

[WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
        public void addNewUser(string name,string address,string email, string phoneno, string pin)
        {
            JavaScriptSerializer ser = new JavaScriptSerializer();
            string Message = "";
            try
            {
                using (MySqlConnection connection = new MySqlConnection(DBconnect.ConnectionString))
                {
                    MySqlCommand cmd = new MySqlCommand("INSERT INTO users(name,address,email,phoneno,pin) VALUES(@name,@address,@email,@phoneno,@pin)", connection);
                    cmd.Parameters.AddWithValue("@name", name);
                    cmd.Parameters.AddWithValue("@address", address);
                    cmd.Parameters.AddWithValue("@email", email);
                    cmd.Parameters.AddWithValue("@phoneno", phoneno);
                    cmd.Parameters.AddWithValue("@pin", pin);
                    connection.Open();
                    cmd.ExecuteNonQuery();
                    connection.Close();
                }
                Message = "New User is added Successfully.";
            }
            catch (Exception ex)
            {
                Message = "Not Added";
            }
            var JSonData = new
            {
                Message = Message
            };
            HttpContext.Current.Response.Write(ser.Serialize(JSonData));
        }

<script type="text/javascript">
$(document).ready(function () {
    $("#btnAdduser").on('click', function (e)
    {

    e.preventDefault();
    var All_users = {};  
    All_users.name   = $('#name').val();  
    All_users.address = $('#address').val();  
    All_users.email  = $('#email').val();  
    All_users.phoneno  = $('#phoneno').val();  
    All_users.pin    = $('#pin').val();  
     var jsonData = JSON.stringify({
                    All_users: All_users
                });

        $.ajax({
                    type: "POST",
                    url: "http://localhost/WebApi/WebService.asmx?op=addNewUser",
                    data: jsonData,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    error: OnErrorCall
        });
        function OnSuccess(response) {
                    var result = response.d;
                    if (result == "success") {
                        $("#msg").html("New record addded successfully  :)").css("color", "green");
                    }
                    $("#name").val("");
                    $("#address").val("");
                    $("#email").val("");
                    $("#phoneno").val("");
                    $("#pin").val("");

                }

                function OnErrorCall(response) {
                    $("#msg").html("Error occurs  :(").css("color", "red");
                }
    });
  });

</script>

*

System.InvalidOperationException:缺少参数:名称。在 System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection 集合)在 System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

*

【问题讨论】:

  • 请发布您的 ajax 调用
  • 嘿兄弟,我在上面发布了 ajax 调用
  • 你尝试过数据:JSON.stringify(jsonData) 吗?
  • 不,我没有。你能和我分享语法吗?谢谢你
  • 你有一个 post 方法,因此你不能在浏览器中使用它,因为只支持 get 方法。您需要像邮递员这样的工具来查看发生了什么。开始调试,检查你的服务正在接收什么,你正在发送什么等

标签: web-services asp.net-web-api


【解决方案1】:

我尝试复制您的案例。 问题是 UseHttpGet = true,更改为 UseHttpGet = false 并检查类 [System.Web.Script.Services.ScriptService] 中的该属性 并像这样通过WebService.asmx/addNewUser 更新您的 AJAX 调用,它起作用了

<script
  src="https://code.jquery.com/jquery-3.3.1.js"
  integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
  crossorigin="anonymous"></script>
<button id="btnAdduser">Test</button>
<script type="text/javascript">
$(document).ready(function () {
    $("#btnAdduser").on('click', function (e)
    {

    e.preventDefault();
    var All_users = {};  
    All_users.name   = "Hien";  
    All_users.address = "Test";  
    All_users.email  = "Test";  
    All_users.phoneno  = "Test";  
    All_users.pin    = "123";  
     var jsonData = JSON.stringify({
                    data: All_users
                });

              $.ajax({
                    type: "POST",
                    url: 
                    "http://localhost/WebApi/WebService.asmx/addNewUser",
                    data: JSON.stringify(All_users),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    error: OnErrorCall
        });
        function OnSuccess(response) {
                    var result = response.d;
                    if (result == "success") {
                        $("#msg").html("New record addded successfully  :)").css("color", "green");
                    }
                    $("#name").val("");
                    $("#address").val("");
                    $("#email").val("");
                    $("#phoneno").val("");
                    $("#pin").val("");

                }

                function OnErrorCall(response) {
                    $("#msg").html("Error occurs  :(").css("color", "red");
                }
    });
  });

</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 2015-05-31
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多