我的angular.js应用将以下JSON发布到我的后端API:
{"pickupAddress":
{"state":"d","country":"d","city":"d","zipCode":"d","street":"d"},
...}`
取而代之的是,我的后端API要求接收的不是
pickupAddress.state
,而是pickupAddress[state]
。我试图将视图中的
ng-model
更改为(myObject.pickupAddress['country']
),但这会产生一些奇怪的错误。我想要一些结果(使用原始html):
<input type="text" name="pickupAddress[state]" />
最佳答案
如果提供对象源,Angular序列化POST数据的方式实际上是使用服务期望的符号。相反,如果使用jQuery $ .param方法将对象序列化为param-string并发布此字符串,则它应该可以工作:
var data = $.param({
"pickupAddress": {
"state": "d",
"country": "d",
"city": "d",
"zipCode": "d",
"street": "d"
}
});
$http.post('test', data, {
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
以上将发布数据为
pickupAddress[state]:d
pickupAddress[country]:d
pickupAddress[city]:d
pickupAddress[zipCode]:d
pickupAddress[street]:d
在Angular问题页面中检查此discussion。