$resource 액션을 사용하여 커스텀헤더를 설정하는 방법
$140이면 다음 작업을 수행할 수 있습니다.
var config = { headers: { 'something': 'anything' } };
$http.get('url/to/json', config)
.success(function() {
// do something…
})
$resource 참조(작동하지 않음):
var config = { headers: { 'something': 'anything' } };
MyResource.get(
config,
function() { // success
// do something…
}
);
대응하는 서비스를 다음과 같이 선언합니다.
.factory('MyResource', function($resource){
return $resource('url/to/json');
})
동작하지 않음: config 객체는 http 헤더가 아닌 URL로 이동합니다.
그렇게 할 수 있는 방법이 있나요?
headers
위해서$resource
는 AngularJS 1.1.1부터 사용할 수 있습니다.사용하고 있는 버전이 올바른지 확인해 주세요.
형식은
$resource('url/to/json', {}, {headers: { 'something': 'anything' }});
[주마 편집] 위가 아닌 것 같아요$resource의 세 번째 파라미터는 달라야 합니다.이게 더 맞는 것 같아요.
$resource('url/to/json', {}, {
get: {
method: 'GET',
headers: { 'something': 'anything' }
}
});
그headers
리소스 작업 내의 개체는 다음 두 가지를 모두 지원합니다.static
필드의 값이지만dynamic
함수에서 반환되는 값입니다.
$resource('url/to/json', {}, {
get: {
method: 'GET',
headers: {
'header_static': 'static_value',
'header_dynamic': dynamicHeaderVal
}
}
});
function dynamicHeaderVal(requestConfig){
// this function will be called every time the "get" action gets called
// the result will be used as value for the header item
// if it doesn't return a value, the key will not be present in the header
}
데모 코드
angular.module('Test',['ngResource'])
.controller('corsCtrl', function ($scope, $http, MyResource) {
$http.defaults.headers.common['test']= 'team'; //Using $http we can set header also
MyResource.get();
})
.factory('MyResource', function($resource) { //Services
return $resource('url/to/json');
})
see in Request Header
"Content-Type" 헤더를 사용하려면 === 'content-type'인 데이터 본문이 없는 헤더를 $190 삭제하기 때문에 1.4.7+ 이전 버전의 데이터 본문을 지정해야 할 수 있습니다.1.4.7/angular.js의 #10255 참조
데이터 본문을 지정하지 않고 스푸핑하기 위해 "data: false"를 설정했을 뿐입니다.
$resource('url/to/json', {}, {
get: {
method: 'GET',
data: false,
headers: { 'something': 'anything' }
}
});
리소스의 구성 API 개체에 액세스하여 동적 일회성 헤더를 설정할 수 있습니다.
데모 코드
angular.
.factory('Resource',['$resource',function($resource){return $resource(baseUrl+'/resource/:id', {id: '@_id'}, {
update : {
method : 'POST',
url : baseUrl+'/resource/:id',
headers : {
'custom-header': function(config) {
// access variable via config.data
return config.data.customHeaderValue;
}
},
transformRequest: function(data) {
// you can delete the variable if you don't want it sent to the backend
delete data['customHeaderValue'];
// transform payload before sending
return JSON.stringify(data);
}
}
});
}]);
실행하다
Resource.update({},{
customHeaderValue: setCustomHeaderValue
},
function (response) {
// do something ...
},function(error){
// process error
});
언급URL : https://stackoverflow.com/questions/18924217/how-to-set-custom-headers-with-a-resource-action
'programing' 카테고리의 다른 글
AngularJS에서 ngInclude 지시문에 모델을 지정하는 방법은 무엇입니까? (0) | 2023.03.10 |
---|---|
oracle sql에 해당하는 "show create table" (0) | 2023.03.10 |
요소를 JSON 파일에 추가하시겠습니까? (0) | 2023.03.10 |
스프링 부트:여러 스키마를 사용하고 런타임에 사용할 스키마를 동적으로 선택하는 방법 (0) | 2023.03.10 |
MySql을 사용하여 Wordpress에 게시물 삽입 (0) | 2023.03.10 |