简单jquery.ajax/webmethod示例不起作用--如何修复
我在上获得了这个简单的webmethod示例 现场演示在网站上运行。我下载了示例代码,并将代码复制到我的测试webapp中,如下所示——除了我的示例应用程序不工作。我的(VS2013)示例应用程序的脚本文件夹中有相同的jquery-1.3.2.min.js(我在这个文件夹中有几个jquery脚本) 以下是我的示例应用程序中的客户端脚本/标记代码(WebForm3是起始页)简单jquery.ajax/webmethod示例不起作用--如何修复,jquery,asp.net,ajax,Jquery,Asp.net,Ajax,我在上获得了这个简单的webmethod示例 现场演示在网站上运行。我下载了示例代码,并将代码复制到我的测试webapp中,如下所示——除了我的示例应用程序不工作。我的(VS2013)示例应用程序的脚本文件夹中有相同的jquery-1.3.2.min.js(我在这个文件夹中有几个jquery脚本) 以下是我的示例应用程序中的客户端脚本/标记代码(WebForm3是起始页) 函数ShowCurrentTime(){ var userName=$('#txtUserName').val() $.
函数ShowCurrentTime(){
var userName=$('#txtUserName').val()
$.ajax({
键入:“POST”,
url:'WebForm3.aspx/GetCurrentTime',
数据:JSON.stringify({name:userName}),
contentType:'application/json;charset=utf-8',
数据类型:“json”,
成功:一旦成功,
故障:功能(响应){
警报(response.d);
}
});
}
函数OnSuccess(响应){
警报(response.d);
}
您好,Rich,从我所看到的情况来看,您的ajax调用基本上是正确的,但是您希望确保避免使用字符串连接来传递参数,您可以通过使用数据散列(即JSON.stringify)或传递您创建的变量来保存参数的数据来做同样的事情。如果此修复不起作用,我建议创建一个变量并从txtUserName.ClientID加载值,我不能确定,但这可能是另一个潜在问题。希望这有帮助
函数ShowCurrentTime(){
var userName=$('#txtUserName').val()
$.ajax({
键入:“POST”,
url:'WebForm3.aspx/GetCurrentTime',
数据:JSON.stringify({name:userName}),
contentType:'application/json;charset=utf-8',
数据类型:“json”,
成功:一旦成功,
故障:功能(响应){
警报(response.d);
}
});
}
函数OnSuccess(响应){
警报(response.d);
}
您好,Rich,从我所看到的情况来看,您的ajax调用基本上是正确的,但是您希望确保避免使用字符串连接来传递参数,您可以通过使用数据散列(即JSON.stringify)或传递您创建的变量来保存参数的数据来做同样的事情。如果此修复不起作用,我建议创建一个变量并从txtUserName.ClientID加载值,我不能确定,但这可能是另一个潜在问题。希望这有帮助 感谢您的回复--我尝试了修改后的ShowCurrentTime()函数,并收到以下错误消息:第17行出现未处理的异常,0x800a01b6中的第13列-JavaScript运行时错误:对象不支持属性或方法“val”我是否需要其他jquery…js文件?嘿,没问题,我会切换回.value,然后确认其中的值是字符串或您期望的值。我将其从.value改为.val()的唯一原因是,jQuery只支持.val()从元素中检索值,但如果它给了您一个错误,我会尝试将其改回,看看会发生什么。我切换回.value()--会给我错误消息。然后在没有帕伦斯的情况下尝试,我回到了原点,没有收到任何错误信息或任何东西。你试过这个示例了吗?如果你想要的只是文本框中的值,也就是用户名,那么我已经更新了我的答案,它确实有效,我已经在我的机器上测试过了。好了,现在一切都正常了,包括你修改过的jquery函数。我只能断定是邪恶的jquery/json侏儒阻碍了我的视线——但我战胜了他们!非常感谢您的帮助。感谢您的回复--我尝试了您修改的ShowCurrentTime()函数,并收到以下错误消息:第17行出现未处理的异常,0x800a01b6中的第13列-JavaScript运行时错误:对象不支持属性或方法“val”我是否需要其他jquery…js文件?嘿,没问题,我会切换回.value,然后确认其中的值是字符串或您期望的值。我将其从.value改为.val()的唯一原因是,jQuery只支持.val()从元素中检索值,但如果它给了您一个错误,我会尝试将其改回,看看会发生什么。我切换回.value()--会给我错误消息。然后在没有帕伦斯的情况下尝试,我回到了原点,没有收到任何错误信息或任何东西。你试过这个示例了吗?如果你想要的只是文本框中的值,也就是用户名,那么我已经更新了我的答案,它确实有效,我已经在我的机器上测试过了。好了,现在一切都正常了,包括你修改过的jquery函数。我只能断定是邪恶的jquery/json侏儒阻碍了我的视线——但我战胜了他们!非常感谢你的帮助。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>WebForm3</title>
<script src="Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
$.ajax({
type: "POST",
url: "WebForm3.aspx/GetCurrentTime",
data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Your Name :
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="Show Current Time" onclick = "ShowCurrentTime()" />
</div>
</form>
</body>
</html>
public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name)
{
return "Hello " + name + Environment.NewLine + "The Current Time is: "
+ DateTime.Now.ToString();
}
}
<script type = "text/javascript">
function ShowCurrentTime() {
var userName = $('#txtUserName').val()
$.ajax({
type: 'POST',
url: 'WebForm3.aspx/GetCurrentTime',
data: JSON.stringify({ name: userName }),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>