Ajax jquery传递多个参数web服务
本文关键字:参数 web 服务 jquery Ajax | 更新日期: 2023-09-27 18:13:41
<script type="text/javascript">
$('#btnregister').click(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "fetchusers.asmx/RegUsers",
data: "{ username: '" + $("#txtuser").val() + "name: '" + $("#txtname").val() + "'}",
dataType: "json",
success: function (data) {
alert("Successfully register");
$("#btnregclose").click();
}
});
});
</script>
<div id="registration">
<fieldset>
<legend>Registration Form</legend>
<input id="txtuser" type="text" placeholder="Username" /><br />
<input id="txtname" type="text" placeholder="Name" /><br />
<input id="txtpass" type="password" placeholder="password" /><br />
<input id="txtconfirmpass" type="password" placeholder="confirm password" /><br />
<input id="btnregister" type="button" value="Register" />
<input id="btnregclose" type="button" value="close" />
</fieldset>
</div>
[WebMethod]
public string RegUsers(string username, string name)
{
string response = username + name;
return response;
}
我是Ajax Jquery的初学者,我正在做练习来提高我对它的了解。我的问题是,当我点击#btnregister不工作。我认为我传递给ajax的参数有问题,但我不知道是什么
try this:
$(document).ready(function () {
$('#btnregister').click(function () {
var obj = { username: $("#txtuser").val(), name: $("#txtname").val() };
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "fetchusers.asmx/RegUsers",
data: JSON.stringify(obj),
dataType: "json",
success: function (data) {
alert("Successfully register");
$("#btnregclose").click();
}
});
});
});
与其尝试通过连接来构建字符串,不如这样做更容易:
$.ajax(url, {
data: JSON.stringify({
username: $("#txtuser").val(),
name: $("#txtname).val()
})
});
它将防止可能发生的打字错误/问题,如果你有一个逗号,在你的一个字段。但请注意,ie7及更低版本将要求您包含一个名为json2.js (github)的文件。
编辑:另外,尝试手动执行您的web服务(只需浏览到url,使用海报等)。你完全有可能得到一个404,或者一个服务器错误。
编辑第2部分:在firefox中调试ajax问题的一个好方法是使用ctrl-shift-k打开web控制台。确保启用"Net",并在其下拉菜单中选中"日志请求和响应体"。这样您就可以看到发出和返回的请求。如果你没有看到一个,那么这是你的javascript的问题,而不是ajax。
另一个编辑:此外,我看到你的点击事件不是在$(文档).ready(function() {});可能是在呈现按钮之前附加了click事件。因此,事件不附加,甚至不执行ajax代码。
使用此语法....
data: "{ 'username': '" + $("#txtuser").val() + "', 'name': '" + $("#txtname").val() + "'}",
问题中的代码是正确的,它需要简单的解决方案。转到yourwebservice.asmx.cs文件并取消在类级别给出的以下行注释,这将解决从jQuery或Ajax调用该webservice的问题。
[System.Web.Script.Services.ScriptService]