Question

Je travaille sur une API à l'aide de Djang-Tastypie comme backend et angularjs pour l'avant.J'envoie une demande de crud avec angularjs $ http.Obtenez, post, mettre tout va bien mais quand j'essaie d'envoyer une demande de patch, la méthode d'erreur n'est pas définie.J'ai créé une usine d'appels d'API dans une demande angulaire mais du patch ne fonctionne pas là.

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;        
    });
};
}

Ce code HTML

<div ng-app="myApp">
<div ng-controller="MyCtrl">
<button type="button" ng-click="edit()">Edit</button>
</div></div>

Lorsque j'envoie une demande de chemin d'accès à l'aide de ce code dans la console, il affiche http.patch n'est pas une fonction. Dites-moi comment puis-je configurer NG-App et Services pour envoyer une demande de correctif à l'aide de Angularjs.

Était-ce utile?

La solution

Un problème courant avec l'ajout de patch à Angularjs est qu'il n'a pas d'en-tête de type de contenu par défaut pour cette méthode HTTP (qui est application / json; Charset= UTF-8 pour mettre, poster et supprimer).Et ce sont ma configuration du $ HTTPProvider pour ajouter un support de correctif:

module.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.patch = {
    'Content-Type': 'application/json;charset=utf-8'
}
}])

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top