2009-06-01 13 views
1

私はJavaScript(文字列)でJSONに私のajax関数に送信するために持っている5変数を変換する方法を理解しようとしています文字列をjsonに変換してwebserviceに送信するjquery?

ここに私のajax関数です。動作するはずですが、すべての文字列をJSONに変換する必要がありますか?

私はjsonなしでデータを送信する別の方法があると思いますが、これはお勧めの方法ですか?私はasp.net

任意のアイデアを使用しています -

   $.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'); 
       } 

      }); 

私は、サービス終了時に、私はJSONを抽出する必要があることを信じますか?

答えて

1

私はあなたがこのlinkで見つけることができることを、あなたのプロジェクトJSON2.jsに含める、とJSON.stringify()関数を使用することをお勧め:

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

Webサービスの戻り値のJSONデータ場合は、

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

あなたの入力データはすべての不正な文字から浄化されることが保証されています。

4

jsonに変換してデータを渡す必要はありません。あなたは本当に上のJSONを受信する必要がある場合

Request.Params["var1"] 

今:

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

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

データがそうのような(Asp.Netで)、リクエストパラメータとして使用できるようになります:ちょうどあなたが渡す必要があるデータを指定サーバー、それは別の問題です。それが要件であれば、私はwhayを理解することに興味があるでしょう。

+0

ありがとうございます!だから私は contentTypeを削除する必要があります: "application/json; charset = utf-8"、 dataType: "json"、???デフォルトのデータ型と指定されていない場合のcontentypeは何ですか? JSONはjavascriptオブジェクトです。したがって、私はサーバー上でasp.netを使用しています。 ..しかし、私は15の異なるパラメータで新しいユーザーを登録する必要がある場合はどう... 15 paramsでメソッドを作成するのは良い練習ですか? これは私の疑問がどこにあるのかです。 –

+0

唯一の欠点は、jQueryがオブジェクトをJsonハッシュに正しく変換しないことです。 – Cerin

関連する問題