我无法使用jquery将html文本框值传递给webservice

时间:2014-12-31 09:02:01

标签: javascript jquery html web-services

我无法使用jquery将html文本框值传递给webservice 我的jquery工作正常,空userName和密码,但如果我添加ajax部分它不工作。请帮我解决这个问题 我的HTML脚本

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript" >
        $(function () {
            $("#ButtonLogin").click(function () {
                var username = $("#TextUN").val();
                var password = $("#TextP").val();
                if (username == "") { alert("fill  the username !"); return; }
                if (password == "") { alert("fill  the password !"); return; }

                var str = "{'userName':'" + username + "', 'password': '" + password + "'}";



                $.ajax({
                    type: "post",
                    url: "http://localhost:4522/AdWebService.asmx/CheckUser",
                    contenttype: "application/json; charset=utf-8",
                    data: str,
                    datatype: "json",
                    success: function (res) {
                        try {

                            var jsondata = res.d;
                            if (jsondata == "true") {
                                window.location("http://localhost:5273/");
                            }
                            else  {
                                alert("failure")
                            }
                        }
                        catch (e) {
                            alert(e.ToString());
                        }
                    },
                    failure: function (err) {
                        alert(err)
                    }

                });




            });

        });

    </script>

我的网络服务方法:

        [WebMethod]
        public string CheckUser(string un,string pass)
        {
            UserAds u = new UserAds();
            u.UserName = un;
            u.Password = pass;
            JavaScriptSerializer js = new JavaScriptSerializer();
            return js.Serialize(udao.CheckUser(u));          

        }

4 个答案:

答案 0 :(得分:1)

您需要传递正确的参数。由于您已将unpass定义为Web服务方法的参数,因此您需要使用它们。

使用

var str = "{'un':'" + username + "', 'pass': '" + password + "'}";

您也可以使用JSON.stringify()

var str = JSON.stringify({
    un: username,
    pass: password
});

答案 1 :(得分:0)

更好的解决方案是不手动创建字符串以将数据发布到您的服务。而是使用&#34;序列化&#34; jQuery中可用的函数。你可以使用这样的东西:

var data = $('form').serialize();

此后,您可以在ajax调用中传递此数据。

答案 2 :(得分:0)

var username = $(“#TextUN”)。val();

尝试

var username = $(“#TextUN”)。text();

答案 3 :(得分:0)

检查html代码中的TextP。

请尝试这种语法:

var str = '{"userName":"' + username + '", "password": "' + password + '"}';