繁体   English   中英

jQuery Ajax调用不起作用

[英]jQuery Ajax call not working

我只是想使用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方法。

谁能向我解释什么问题?

我对.net不熟悉,但似乎您的Javascript代码发出了POST请求,而后端只有GET处理程序。

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

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

您缺少$ .ajax的参数(contentType和dataType):

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

我相信,因为您将请求设置为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);
  }
});

我将StartGame()设为静态,现在可以使用了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM