【问题标题】:How can I enter data from clintside using webservice in asp.net?如何在 asp.net 中使用 webservice 从 clintside 输入数据?
【发布时间】:2023-04-07 09:17:01
【问题描述】:

我正在尝试这个:

这是我的 javascript 代码:

    function insertVisitor() {
        var pageUrl = '<%=ResolveUrl("~/QuizEntry.asmx")%>'
        $.ajax({
            type: "POST",
            url: pageUrl + "/insert_Visitor",
            data: "{'name':'" + $("#txtName").val() + "','phoneno':'" +
                  $("#txtPhone").val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccessCall,
            error: OnErrorCall
        });

        return false();
    }

    function OnSuccessCall(response) {
        window.open("about.html");
    }

    function OnErrorCall(response) {
        alert(response.status + " " + response.statusText);
    }

</script>

这是 html :

<form action="" method="post">
            <table>
                <tr>
                    <th>
                        <label>
                            please enter your Name :
                        </label>
                    </th>
                    <td>
                        <input id="txtName" type="text" value="" placeholder="Name" />
                    </td>
                </tr>
                <tr>
                    <th>
                        please enter your Phone No :
                    </th>
                    <td>
                        <input id="txtPhone" type="text" value="" placeholder="Phone No" />
                    </td>
                </tr>
                <tr>
                    <td>
                        &nbsp;
                    </td>
                    <td>
                    <!--<input id="btnEnter" type="button" style="background-image:~/images/pop_up/enter.png; height:40px; width:120px" />-->
                        <!--<input type="submit" name="button" id="button" value="enter" onClick="window.location='about.html'" />-->
                        <!--<a href="about.html" style="display: block">-->
                            <img src="images/pop_up/enter.png" width="120" height="40" alt="img" style="width: 120px;
                                height: 40px; position: relative; right: 0;" onclick="return insertVisitor()" />
                         <!--</a>-->
                    </td>
                </tr>
            </table>
            </form>

这是网络服务代码:

 [WebMethod]
public string insert_Visitor(string name, string phoneno)
{
    string returnvalue = "";
    if (name != "" && phoneno != "")
    {
        cmd.Parameters.Clear();
        cmd.Connection = connection;
        cmd.CommandText = "Insert_Into_VisitorLog";
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@Name", name);
        cmd.Parameters.AddWithValue("@Phone", phoneno);

        Object obj = cmd.ExecuteScalar();

        if (obj != "0" || obj != "Unexpected error occurred!!")
        {
            returnvalue = Convert.ToString(obj);
        }
        else
        {
            returnvalue = Convert.ToString(obj);
        }
    }


    return returnvalue;
}

我面临的问题是这样的错误

400 Bad Request 

请帮忙解决一下

【问题讨论】:

    标签: javascript asp.net ajax json web-services


    【解决方案1】:

    jQuery中的数据部分是错误的

     data: "{'name':'" + $("#txtName").val() + "','phoneno':'" +
                  $("#txtPhone").val() + "'}",
    

    应该是

     data: {'name': $("#txtName").val()  ,'phoneno': $("#txtPhone").val() },
    

    编辑 1

    此外,当您从服务返回字符串时,dataType 在您的 jquery 调用中也是错误的。

    Differences between contentType and dataType in jQuery ajax function

    编辑 2

       var pageUrl = '<%=ResolveUrl("~/QuizEntry.asmx")%>'+"/insert_Visitor?name="+ $("#txtName").val()+"&phoneno="+ $("#txtPhone").val() ;
        $.ajax({
            type: "POST",
            url: pageUrl,
            success: OnSuccessCall,
            error: OnErrorCall
        });
    

    编辑 3

    使用以下内容获取有关错误详细信息的更多信息

    function OnErrorCall(xhr, ajaxOptions, thrownError)
    {
       alert(xhr.responseText);
    }
    

    【讨论】:

    • 我错过了什么吗?
    • 虽然是对的但是你也可以在url中试试这个数据。通过附加此值。
    • 我该怎么做可以告诉我
    • 那我应该返回什么?你能告诉我吗
    • 不,您从服务中返回的字符串是正确的。但是在 jQuery 中,您会告诉您将从服务中获取 Json。就像我在回答中所做的那样省略。
    猜你喜欢
    • 2013-03-15
    • 2019-10-08
    • 1970-01-01
    • 2017-03-26
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    相关资源
    最近更新 更多