我无法使用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));
}
答案 0 :(得分:1)
您需要传递正确的参数。由于您已将un
和pass
定义为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 + '"}';