2017-12-10 5 views
0

私は、次のJSオブジェクトを持っている:JSオブジェクトをJSONとして送信するにはどうすればいいですか?

json = 
      { 
       "category_id": category, 
       "subcategory_id": subcategory, 
       "offer_type": type_offer, 
       "features": [] 
      }; 

私は次のようにJSONとしてこのオブジェクトを送信しようとした:

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: json, 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 

はそれが正しいですか?それとも前に準備をする必要がありますか?

今私はこのコードの一部を使用します。

formObj = $("#form_add").serialize(); 

var json = {}; 

var wrapperObj = {json: json, form: formObj}; 

    $.ajax({ 
       type: 'POST', 
       url: '/add', 
       data: JSON.stringify(wrapperObj), 
       success: function (data) { 
        // TODO 
       }, 
       contentType: "application/json", 
       dataType: 'json' 
      }); 

はそれが正しい方法ですか? stringifyの前後に2つのオブジェクトをパッケージ化するときは?

+0

さて、それは動作していますか? – Atsch

+0

更新された質問をご覧になれますか – Alice

答えて

1

あなたは私はあなたが最初のJSON.stringifyを使うべきだと思う、それ有効なJSON

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: JSON.stringify(json), 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 
+0

再度私の質問が表示されますか? – Alice

0

作るためにJSON.stringifyを使用する必要があります。

$.ajax({ 
      type: 'POST', 
      url: '/add', 
      data: JSON.stringify(json), 
      success: function (data) { 
      }, 
      contentType: "application/json", 
      dataType: 'json' 
     }); 
1

あなたはまた、jQuery short-hand methodsを使用することができます。

$.post('/add', json).done(function() { 
    // Handle response here 
    });