AngularJS - $ http.post发送请求参数而不是JSON的任何方式?我有一些旧的代码通过jQuery的post方法发出一个AJAX POST请求,看起来像这样:$.post("/foo/bar", requestData,
function(responseData)
{
//do stuff with response
}requestData 只是一个具有一些基本字符串属性的javascript对象。我正在将我们的东西移动到使用Angular,我想用$ http.post替换这个调用。我想出了以下内容:$http.post("/foo/bar", requestData).success(
function(responseData) {
//do stuff with response
}});当我这样做时,我收到了来自服务器的500错误响应。使用Firebug,我发现这样就发送了请求体:{"param1":"value1","param2":"value2","param3":"value3"}成功的jQuery $.post发送身体像这样:param1=value1¶m2=value2¶m3=value3我遇到的端点是期望请求参数而不是JSON。所以,我的问题是,无论如何要告诉$http.post发送javascript对象作为请求参数而不是JSON?是的,我知道我可以自己从对象构造字符串,但我想知道Angular是否提供了开箱即用的东西。
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
来自AngularJS文档:
params - {Object。} - 在url之后将转向的字符串或对象的映射?key1 = value1&key2 = value2。如果该值不是字符串,则它将是JSONified。
因此,提供字符串作为参数。如果您不想这样,那么使用转换。再次,从文档:
要在本地覆盖这些转换,请将转换函数指定为config对象的transformRequest和/或transformResponse属性。要全局覆盖默认转换,请覆盖$ httpProvider的$ httpProvider.defaults.transformRequest和$ httpProvider.defaults.transformResponse属性。
有关详细信息,请参阅文档。
添加回答
举报
0/150
提交
取消