2010-08-11 71 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); 
    } 
});