2017-07-11 17 views
0

的格式轉換以發送一個OBJ到節點JS路由器「/測試」的NodeJS,jquery的AJAX,例如 的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

我覺得你只是想通過data: obj$.ajax(),不data: {obj: 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