2009-06-01 7 views
1

Essayer de comprendre comment convertir comment Covert 5 variables que j'ai en JavaScript (chaînes) à un JSON pour envoyer le long de ma fonction ajaxjquery pour convertir des chaînes en json à envoyer à mon service web?

ici est ma fonction ajax, seuil relativement nouveau à cela, mais je crois que ce devrait fonctionner .. mais j'ai besoin de convertir toutes mes chaînes à un JSON - n'est-ce pas?

Je crois qu'il existe d'autres façons d'envoyer des données sans json, mais c'est la façon recommandée n'est-ce pas?

   $.ajax({ 
       type: "POST", 
       url: "MyService.aspx/SendEmail", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(msg) { 
        alert(msg.d); 
       }, 
       error: function() { 
        alert('error'); 
       } 

      }); 

Je crois qu'à la fin du service que je dois extraire le JSON - J'utilise asp.net

Toutes les idées?

Répondre

1

Je vous suggère d'inclure dans votre projet JSON2.js, que vous pouvez trouver à ce link, et d'utiliser la fonction JSON.stringify():

... 
data: JSON.stringify({ yourVar: "value", var2: "value2" }), 
... 

si vos données de service retour web JSON vous peut analyser le résultat avec la bibliothèque:

success: function(json) { json = JSON.parse(json); 
          var o = json.d; 
          ... 
} 

Il peut vous assurer que vos données d'entrée seront assainis de chaque caractère illégal.

4

Vous n'avez pas besoin de convertir en json pour transmettre les données. Il suffit de spécifier les données que vous devez passer:

$.ajax({ 
     url: "myUrl", 
     data: { 
      var1: "some data or var", 
      dataItem2: false // or a variable 
     }, 

     success: function(msg) { 
      alert(msg.d); 
     }, 
     error: function() { 
      alert('error'); 
     } 
    }); 

Les données seront disponibles en tant que paramètres de demande, comme si (en Asp.Net):

Request.Params["var1"] 

Maintenant, si vous avez besoin de recevoir JSON truely sur le serveur, c'est un problème différent. Si c'est une exigence, je serais intéressé à comprendre whay.

+0

Merci! donc j'ai besoin de supprimer contentType: "application/json; jeu de caractères = utf-8", dataType: "json", ???? whats le type de données par défaut et contentype si non spécifié .. pas exactement, je voudrais connaître la différence :-) ... JSON est un objet javascript .... Donc, je suis en utilisant asp.net sur le serveur. .. mais qu'en est-il si je dois enregistrer un nouvel utilisateur avec 15 paramètres différents ... est-il bon de créer une méthode avec 15 params? C'est là où mes doutes se trouvent .. –

+0

Le seul inconvénient est jQuery ne convertit pas correctement les objets en hachages Json. – Cerin

Questions connexes