Pregunta

Estoy trabajando en una API usando Djang-Tastypie como Backend y Angularjs para Front End.Estoy enviando Solicitud de CRUD usando angularjs $ http.Obtenga, publique, ponlo todo está bien, pero cuando estoy tratando de enviar una solicitud de parche, el método de error no está definido el parche.He creado una fábrica de llamadas API en una solicitud angular, pero la solicitud de parche no funciona allí.

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

este mi código HTML

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

Cuando envío una solicitud de ruta usando este código en la consola, muestra http.patch no es una función. Dígame cómo puedo configurar NG-APP y SERVICES para enviar una solicitud de parche utilizando AngularJS.

¿Fue útil?

Solución

Un problema común con la adición de parche a angularjs es que no tiene un encabezado de tipo de contenido predeterminado para ese método HTTP (que es la aplicación / JSON; Charset= UTF-8 para poner, publicar y eliminar).Y estas son mi configuración del $ httpprovider para agregar soporte de parche:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top