2017-06-07 23 views
0

とserializearray()の要素を取得し、私はノードJSに私のフォームから入力された要素を取得したいと思います:AJAXとノードのjs

クライアント側

var ss =($('#addform').serializeArray()); 
var url= 'http://localhost:8181/add'; 
    $.ajax({ 
     url:url, 
     type: 'POST', 
     dataType: "json", 
     data:{ss:ss}, 
     success: function(json){ 
      alert("done");   
    }, 
    error: function(jqXHR, textStatus, err) { 
     alert('text status '+textStatus+', err '+err) 
    } 
}); 

[オブジェクト、オブジェクト、オブジェクト、オブジェクト、オブジェクト、オブジェクト、オブジェクト]

サーバーサイド:

router.route('/adduser') 
.post(function(req, res) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
     console.log(req.body); 
     console.log(req.body.name); 
} 

結果:

{ ss: 
    [ { name: 'name', value: 'a' }, 
    { name: 'lastname', value: 'a' }, 
    { name: 'email', value: 'a' }, 
    { name: 'password', value: 'a' }, 
    { name: 'password2', value: 'a' }, 
    { name: 'country', value: 'a' }, 
    { name: 'phone', value: 'a' } ] } 

console.log(req.body.name);戻り、私は、サーバー側でこれらのオブジェクトの要素を取得できますか

を未定義?

+0

JSON.Stringify()を使用してデータを渡してみてください。 – geminiousgoel

+0

@geminiousgoel - どのように役立つでしょうか? – Quentin

+0

サーバーはあなたが渡したものを取得し、それがそうでなければ私はオブジェクトからデータを取得することはできませんgroomデータを受け取る場合は! – geminiousgoel

答えて

-1

SS変数はオブジェクトの配列です。だから、ループを使ってオブジェクトを反復処理する必要があります。

var data = req.body.ss; 
    for(var i in data){ 
      console.log(data[i].name); 
    } 
+0

返される定義されていない – ahmed

+0

私はコードを変更しました。私はreq.bodyからssに言及するのを忘れていました。これはうまくいくはずです。 –

0
req.body.name 

これは驚くべきことではありません。

req.bodyに設定してください(すでにログインしていて、質問で引用しました)。

オブジェクトの唯一のプロパティはssです。値は配列です。 nameプロパティはありません。それはあなたが望む形式でデータを与えるものではありません

var ss =($('#addform').serializeArray()); 


はこれをしないでください。

代わりにserializeを使用してください。

var ss = $('#addform').serialize(); 

これは、URLエンコードされた文字列を提供します。したがって、オブジェクトを渡す代わりに直接データに渡します。

data: ss, 
+0

これはconsole(browser)内の結果です(ブラウザではname = a&lastname = a&email = a&password = a&password2 = a&country = a&phone = a サーバで: {ss: 'name = a&lastname = a&email = a&password = a&password2 = a&country = a&phone = a'} 名前の値はどのように取得できますか? – ahmed

+0

@ahmed - 最初のものが期待されます。この答えで最後の段落と最後の行を無視したような2番目の音です。 – Quentin