在使用jquery类库的ajax时,发现一个很奇怪的问题,在网上找了一个jquery调用。net后台方法的例子,用url传递参数没有问题,可以正常执行,稍后会把例子写出来,但是调用。net后台方法的时候就奇怪了,断点调试,只进入load事件,而不调用要执行的方法,找同学帮忙,同学做了个子例子可以执行,通过qq远程协助,问题也没有解决,很是郁闷,我把他的代码copy了一份,就可以执行了,我更是纳闷了,短短的十几行代码是写的一模一样的,我是睁大了眼睛看,最后还没发现问题,干脆就ctrl+c ctrl+v吧,这应该没问题吧,肯定错不了,呵呵,结果还是没执行要调用的那个方法,然后我就用了vs2008试了一下,结果问题,再把vs2008的代码放在vs2005的页面,还是不行,我真的是不知道问题出在哪里了,vs2005也有执行成功的,就是同学给的那几行代码,在vs2008上怎么试都没问题,我把代码贴出来,欢迎大家研究探讨,并提出问题。
vs2008版本的代码
前台代码
<script type="text/javascript" language="javascript" src="jquery.min.js"></script>
<script type="text/javascript" language="javascript" >
$(function(){
$("#btn").click(function(){
$.ajax({
type:"post",
url:"Default.aspx/hello",
contentType:"application/json",
dataType:"json",
data:"{str:'name'}",
success:function(data){
alert(data.d);
},
error:function (err){
alert("error:"+err);
}
});
});
});
</script>
<form id="form1" runat="server">
<input id="btn" type="button" value="button" />
</form>
后台代码
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string hello(string str)
{
return str + "1";
}
}
}
执行成功,代码还是这个大家可以放在vs2005上面试一下,欢迎大家提出问题,解决分析。