jQuery Ajax调用不起作用

时间:2010-08-11 21:49:37

标签: .net ajax jquery

我只想尝试使用jQuery进行简单的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();   
        }
    }

当我在Visual Studio中调试代码时,永远不会调用方法StartGame

任何人都可以向我解释这是什么问题吗?

4 个答案:

答案 0 :(得分:0)

我不熟悉.net,但好像你的Javascript代码发出了POST请求,而后端只有一个GET处理程序。

通常,能够在每个层上调试功能是个好主意。例如,您可以检查您的请求是否已被触发(或分析Firefox上the Firebug extension的问题.Chrome和Safari具有类似的调试机制。

答案 1 :(得分:0)

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

您缺少参数(contentType&amp; dataType)到$ .ajax:

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

答案 2 :(得分: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);
  }
});

答案 3 :(得分:0)

我将StartGame()设为静态,现在可以正常工作