2010-08-11 8 views
0

je suis juste en train de faire un simple appel Ajax en utilisant jQueryjQuery appel Ajax ne fonctionne pas

c'est mon JavaScript:

//Starts the game 
function startGame() {      
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/StartGame"     
    }); 
} 

mon bouton:

<input type="image" value="twist..." src="images/play.png" class="playButton" onclick="startGame();return false;" /> 

et code derrière:

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 Je débogue le code dans Visual Studio la méthode StartGame n'est jamais appelée. Est-ce que quelqu'un peut m'expliquer quel est le problème?

+1

Que vous attendez-vous à faire, et que fait-il maintenant? – jvenema

Répondre

0

i fait StartGame() statique et maintenant il fonctionne

0

Je ne suis pas familier avec .net, mais il semble que votre code Javascript fasse une demande POST, alors qu'il n'y a qu'un gestionnaire GET sur le backend.

En général, c'est une bonne idée de pouvoir déboguer la fonctionnalité sur chaque couche. Par exemple, vous pouvez vérifier si votre demande a été déclenchée (ou d'analyser quel était le problème avec the Firebug extension sur Firefox Chrome et Safari ont des mécanismes de débogage similaires

0

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

Vous paramètres manquants (contentType & dataType) à $ .ajax:

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

Ce ne sont pas des paramètres obligatoires. –

+0

ok corrigé + source ajoutée. Même avec un paramètre optionnel, cette solution fonctionne ... – mathieu

0

Je crois que parce que vous configurez la demande comme POST et vous n'êtes pas envoyer des données POST par exemple:

$.ajax({ 
    type: "POST", 
    url: "Default.aspx/StartGame", 
    data: "name=John", 
    success: function(msg){ 
    alert(msg); 
    } 
}); 

Si vous êtes extrayez html, vous devez utiliser:

$.ajax({ 
    url: "Default.aspx/StartGame", 
    cache: false, 
    success: function(html){ 
    //create the game html 
    $("#game").append(html); 
    } 
}); 
Questions connexes