在使用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上面試一下,歡迎大家提出問題,解決分析。