2010-08-11 49 views
0

我只是試圖讓使用jQueryjQuery的Ajax調用不工作

一個簡單的Ajax調用,這是我的JavaScript:

//Starts the game 
function startGame() {      
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/StartGame"     
    }); 
} 

我的按鈕:

<input type="image" value="twist..." src="images/play.png" class="playButton" onclick="startGame();return false;" /> 

和後面的代碼:

public partial class Default : Page 
    { 
     private static GameEngine GameEngine 
     { 
      get { return new GameEngine();} 
     } 

     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     [WebMethod] 
     public void StartGame() 
     { 
      GameEngine.StartToPlay(); 
     } 
    } 

whe n我在Visual Studio中調試代碼的方法StartGame永遠不會被調用。

任何人都可以向我解釋什麼是問題?

+1

什麼是你希望它做的,什麼是它現在在做什麼? – jvenema 2010-08-11 21:51:58

回答

0

我做StartGame()靜態的和現在的作品

0

我對.net並不熟悉,但好像您的Javascript代碼發出POST請求,而後端只有GET處理程序。

一般來說,能夠調試每個圖層的功能是個好主意。例如,你可以檢查你的請求被觸發(或分析哪些問題是與the Firebug extension在Firefox瀏覽器和Safari瀏覽器也有類似的調試機制

0

來自:http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

你缺少的參數(的contentType &的dataType)至$阿賈克斯:

function startGame() { 
    $.ajax({ 
     type: "POST", 
     url:"Default.aspx/StartGame" 
     contentType: "application/json; charset=utf-8", 
     data: "{}", 
     dataType: "json" 
    }); 
} 
+0

這些不是必需的參數。 – 2010-08-11 22:23:46

+0

正確更正+添加源。 即使使用可選參數,此解決方案也可以工作... – mathieu 2010-08-12 07:29:15

0

我相信,因爲你設置請求POST和你不發送任何POST數據如:

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/StartGame", 
    data: "name=John", 
    success: function(msg){ 
    alert(msg); 
    } 
}); 

如果你是剛剛取回的HTML,你應該使用:

$.ajax({ 
    url: "Default.aspx/StartGame", 
    cache: false, 
    success: function(html){ 
    //create the game html 
    $("#game").append(html); 
    } 
});