2013-02-25 4 views
0

J'ai un autre problème :( J'ai WS, qui est une partie de l'application VS MVC 2010. Je peux l'appeler, et ça fonctionne très bien Mon problème est, que je peux ' t passe params à partir de variables (paramètres de fonction)JQuery Ajax appel - paramètre de la variable

function test2(usr, art) { 
    alert('start : ' + usr); 

    var params = {user : usr, idArt : art} 

    $.ajax({ 
     type: "POST", 
     url: "/../WebServicePrzeczytany.asmx/Przeczytany", 
     data: params, 
     dataType: "json", 
     success: function suc(msg) { 
      alert("odebrane: "); 
     }, 
     faild: fail 
    }); 

    alert('stop : ' + art); 
}; 

Je vous appelle à partir de bouton (pour le test) Toute sugestions

Problem solved:.?

Encore une fois un grand merci à Anthony Grist (voir commentaires), pour Firebug, c'est un outil puissantDonc, Firebug a dit à mon, que je reçois une erreur WS. C'était: "Format de requête n'est pas reconnu pour URL se terminant de façon inattendue dans"/Przeczytany "".

La solution est d'ajouter

<webServices> 
<protocols> 
<add name="HttpGet"/> 
<add name="HttpPost"/> 
</protocols> 
</webServices> 

à WS. Et c'est tout. jupi !! :)

+2

terminez votre ligne de var avec un point-virgule; – EnterJQ

+0

@EnterJQ Ce n'est pas une exigence en JavaScript. –

+0

Qu'est-ce qui * arrive *? Utilisez les outils de développement de votre navigateur (Firebug dans Firefox) pour voir si la demande est envoyée, et pour vérifier les éventuelles erreurs JavaScript. –

Répondre

0

Si vous activez JSON pour votre service Web (en décorant la méthode avec l'attribut [ScriptService]) vous serez en mesure d'invoquer comme ceci:

function test2(usr, art) { 
    alert('start : ' + usr); 

    var params = {user : usr, idArt : art} 

    $.ajax({ 
     // TODO: never hardcode an url like that => use an url helper to generate that! 
     url: '/../WebServicePrzeczytany.asmx/Przeczytany', 
     type: 'POST', 
     data: JSON.stringify(params), 
     contentType: 'application/json', 
     success: function suc(msg) { 
      alert('odebrane: '); 
     }, 
     error: fail 
    }); 

    alert('stop : ' + art); 
}; 

A noter:

  • Utilisation de la méthode native JSON.stringify pour convertir l'objet javascript en chaîne JSON avant de le transmettre au service Web
  • Paramètre contentType: 'application/json' car c'est ce que nous transmettons à Service e

qu'il vous reste à faire:

  • Remplacer la propriété url hardcoded à votre service avec une url générée à partir d'une aide d'URL (comme @Url.Content("~/WebServicePrzeczytany.asmx/Przeczytany")).