2016-01-21 100 views
0

我有POST请求,由于我需要使用它发送一些奇怪的数据参数,我无法正常工作。以角度发送POST请求中的嵌套数据

虽然这个工程:

return $http.post('/adcampaign/update_ads.json' 
    + '?id=' + params.id 
    + '&adcampaign_id=' + params.adcampaignID 
    + '&ads[description]=' + params.description 
    + '&ads[title]=' + params.title 
    + '&ads[skip_offset]=' + params.skip_offset 
    + '&ads[click_through]=' + params.click_through); 
} 

它创建我不想参数,但它是我得到它的工作至今的唯一途径。

我试着这样做:

$http.post('/adcampaign/update_ads.json', { 
    id: params.id, 
    adcampaign_id: + params.adcampaignID, 
    'ads[description]': params.description, 
    'ads[title]': params.title, 
    'ads[skip_offset]': params.skip_offset, 
    'ads[click_through]': params.click_through 
}); 

但是,在后端由于ads[prop]数据性能产生误差。

如果没有' s写入ads[prop]会引发语法错误,也会写入ads['prop']

我该如何做这项工作?

回答

0

应该创建属性ads,它本身就是一个具有属性的对象。

var postData = { 
    id: params.id, 
    adcampaign_id: + params.adcampaignID, 
    ads:{ 
     description: params.description, 
     title: params.title, 
     skip_offset: params.skip_offset, 
     click_through: params.click_through 
    } 
} 

$http.post('/adcampaign/update_ads.json', postData) ; 

要验证在PHP中:

$data = json_decode(file_get_contents('php://input')); 
var_dump($data); 
+0

看起来合理,但在我要看看之前,如果它是正确的解决方案,我可以说后端收到一个错误。我会尽快给您回复 :) – Chrillewoodz