如果以下内容返回了一个arraybuffer,我将在哪里设置responseType?
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(user, getResponseHeaders){
user.abc = true;
user.$save(function(user, putResponseHeaders) {
//user => saved user object
//putResponseHeaders => $http header getter
});
});
我尝试过:
var headers = {responseType: 'arraybufer'}
User.get(({userId:123},function(user,headers){...
但是当我在console.log(标题)时,它表示未定义
答案 0 :(得分:-1)
isArray - {boolean =} - 如果为true,则此操作的返回对象为数组,请参阅返回部分。
transformResponse - {function(data,headersGetter)| Array。} - 转换函数或此类函数的数组。 transform函数接受http响应主体和头部并返回其转换(通常是反序列化)版本。默认情况下,transformResponse将包含一个函数,该函数检查响应是否类似于JSON字符串,并使用angular.fromJson对其进行反序列化。要防止此行为,请将transformResponse设置为空数组:transformResponse:[]
https://code.angularjs.org/1.4.7/docs/api/ngResource/service/ $资源
angular.module('itemServices', ['ngResource'])
.factory('Item', ['$resource',
function ($resource) {
return $resource('items/:id',
{id: '@id'},
{
query: {
isArray: true,
method: 'GET',
params: {},
transformResponse: function (data) {
return angular.fromJson(data).body.rows
}
},
get: {method: 'GET', params: {id: '@id'}},
save: {method: 'POST'},
update: {method: 'PUT', params: {id: '@id'}},
delete: { method: 'DELETE', params: {} }
});
}]);