为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS - $ http.post发送请求参数而不是JSON的任何方式?

AngularJS - $ http.post发送请求参数而不是JSON的任何方式?

holdtom 2019-07-25 19:18:01
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&param2=value2&param3=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属性。

有关详细信息,请参阅文档


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 988 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信