2017-07-11 6 views
0

ノードJSルータ「/試験」にOBJを送信するためのAJAXnodejs、jqueryのAJAX、転送のフォーマット変換と受信オブジェクト

var obj =new object(); 
obj.a='a'; 
obj.b='b'; 

$.ajax({ 
    url:"/test", 
    type:"POST", 
    data:{ 
     obj:obj 
    },success:function(){ 


    },error:function(){ 

    } 
}); 

OBJを受け「/試験」ルータ。

router.post('/test',function(req, res, next){ 

    for(var key in req.body){ 
     console.log(key); 
     console.log(req.body[key]); 
    } 
    res.end(); 
}); 

このオブジェクトは自動的に別の形式

{ 
'obj[a]':'a', 
'obj[b]':'b' 
} 

kに変換されますeyは'a'ではなく、'obj[a]'

どのように正しく送受信できますか?このような

console.log(req.body.obj);は次のとおりです。

{ 
    a:a, 
    b:b 
} 

答えて

1

私はあなただけ$.ajax()、ないdata: {obj: obj}data: objを渡したいと思います。あなたが望んでいない別のオブジェクトにそれを入れ子にするのはあなたです。

$.ajax({ 
    url:"/test", 
    type:"POST", 
    data:obj, 
    success:function(){ 

    }, error:function(){ 

    } 
}); 

また、サーバーのJSONにこれを正しく解析するためのミドルウェアが必要です。それ以外の場合は、文字列になります。

+0

をはい、私はどのように行うことができますか? –

+0

@AlbertChen - コード例はすでに私の答えです。 – jfriend00

+0

n個のオブジェクトがある場合はどうなりますか? obj_1、obj_2 ... obj_n –

1

は、このようなあなたのオブジェクトを作成します。

var obj = { 
a:'a', 
b:'b' 
}; 

$.ajax({ 
    url:"/test", 
    type:"POST", 
    data:obj, 
    success:function(){ 


    },error:function(){ 

    } 
}); 
+0

n個のオブジェクトがある場合はどうなりますか? obj_1、obj_2 ... obj_n –

+0

あなたが望むすべてのオブジェクトを持つより大きなオブジェクトを作成する – madalinivascu

関連する問題