2010-08-11 3 views
0

я просто пытаюсь сделать простой вызов Ajax с помощью JQueryJQuery 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

ответ

0

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

0

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

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

0

От:.. 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

Это не требуемые параметры. –

+0

ok исправлено + добавлен источник. Даже с дополнительным параметром это решение работает ... – mathieu

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); 
    } 
}); 
Смежные вопросы