Angularjs를 사용한 패치 요청
-
20-12-2019 - |
문제
Djang-tastypie를 사용하여 Front End 용 Angularjs를 사용하여 API를 사용하고 있습니다.Angularjs $ HTTP를 사용하여 요청을 보내고 있습니다.가져 오기, 게시물, 모든 것이 잘되면 패치 요청을 보내려고 할 때 오류 메소드 패치가 정의되지 않았습니다.API 호출의 공장을 각도로 만들었지만 패치 요청은 거기에서 작동하지 않습니다.
angular.module('tastypieModule', ['ngResource']).
factory('apiCall', function($http, $resource) {
delete $http.defaults.headers.common['X-Requested-With'];
var apiCall = $resource('/api/v1/:type/:id/',
{type: '@type', username: '@userName', api_key: '@api_key', user: '@userID', id: '@id'},
{
get: {method: 'GET'},
post: {method: 'POST', headers: {'Content-Type': 'application/json'}},
del: {method: 'DELETE', headers: {'Content-Type': 'application/json'}},
update: {method: 'PUT', headers: {'Content-Type': 'application/json'}},
pupdate:{method:'PATCH',headers: {'Content-Type': 'application/json'}}
}
);
return apiCall;
});
function MyCtrl($scope,$resource){
$scope.edit=function(){
id=$scope.E_id
$http.pupdate('/api/v1/quizsetting/'+id+'/', editedquizsetting).
success(function(data, status) {
$scope.status = status;
$scope.data = data;
$scope.editQuizSettingModal = false;
//$scope.quizsettinglist.objects[$scope.e_quizsettingindex]=data;
$(".message").append("object has been created successfully");
})
.
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
};
}
.
이 HTML 코드
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<button type="button" ng-click="edit()">Edit</button>
</div></div>
.
콘솔 에서이 코드를 사용하여 경로 요청을 보내면 http.patch가 함수가 아닙니다. Angularjs를 사용하여 패치 요청을 보내기 위해 NG-APP 및 서비스를 구성하는 방법을 알려주십시오.
해결책
AngularJS에 패치를 추가하는 공통된 문제는 해당 HTTP 메소드 (응용 프로그램 / JSON; CHARSET= PUT, POST 및 DELETE에 대한 CHARSET= UTF-8)에 대한 기본 콘텐츠 형 헤더가 없습니다.그리고 이것들은 $ httpprovider의 내 구성이 패치 지원을 추가하는 것입니다.
module.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.patch = {
'Content-Type': 'application/json;charset=utf-8'
}
}])
. 제휴하지 않습니다 StackOverflow