【发布时间】:2013-02-18 17:54:57
【问题描述】:
我想像传统的 jQuery $.ajax 一样指定 dataType: 'json'。
Angular.js $http.post 可以做到这一点吗?
【问题讨论】:
我想像传统的 jQuery $.ajax 一样指定 dataType: 'json'。
Angular.js $http.post 可以做到这一点吗?
【问题讨论】:
您可以使用 HTTP Config 对象来设置标头:
$http({
method: 'POST',
url: 'somewhere.xyz',
headers: {
'Content-type': 'application/json'
}
})
【讨论】:
来自http://docs.angularjs.org/api/ng.$http
转换请求和响应 请求和响应都可以使用转换函数进行转换。默认情况下,Angular 会应用这些转换:
请求转换:
如果请求配置对象的 data 属性包含对象,则将其序列化为 JSON 格式。 响应转换:
如果检测到 XSRF 前缀,则删除它(请参阅下面的安全注意事项部分)
- 如果检测到 json 响应,则使用 JSON 解析器对其进行反序列化
所以不需要设置数据类型它是自动完成的
【讨论】:
Accept 标头吗?
Content-type请求中
Content-Type 标头时,jQuery 会设置 Accept 标头
我遇到了同样的问题,responseType:'json' 解决了这个问题
您可以使用 responseType:'json' 代替 dataType:'json'
var promise = $http({
method: 'POST',
url: 'somewhere.xyz',
responseType:'json'
});
供进一步参考 https://docs.angularjs.org/api/ng/service/$http#methods_jsonp
【讨论】: