JQuery Ajax не работает - PullRequest
       2

JQuery Ajax не работает

0 голосов
/ 12 августа 2010

Я просто пытаюсь сделать простой Ajax-вызов, используя jQuery

, это мой 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 голосов
/ 16 августа 2010

я сделал StartGame () статическим и теперь он работает

0 голосов
/ 12 августа 2010

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

Вам не хватает параметров (contentType & dataType) до $ .ajax:

 function startGame() {
     $.ajax({
         type: "POST",
         url:"Default.aspx/StartGame" 
         contentType: "application/json; charset=utf-8",
         data: "{}",
         dataType: "json"
     });
 }
0 голосов
/ 12 августа 2010

Я полагаю, что поскольку вы устанавливаете запрос как 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);
  }
});
0 голосов
/ 12 августа 2010

Я не знаком с .net, но кажется, что ваш код Javascript делает запрос POST, в то время как в бэкэнде есть только обработчик GET.

В общем, неплохо иметь возможностьотладить функциональность на каждом слое.Например, вы можете проверить, был ли запущен ваш запрос (или проанализировать, в чем проблема с расширением Firebug в Firefox. В Chrome и Safari есть похожие механизмы отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...