angularjs - 使用angularjs的补丁请求

标签 angularjs angularjs-directive angularjs-scope

我正在使用djang-tastypie作为后端和AngularJs作为前端的API。我正在使用angularjs $ http从CRUD发送请求。 GET,POST,PUT一切都很好,但是当我尝试发送PATCH请求时,出现错误,未定义PATCH方法。我已经在angular中创建了一个api调用工厂,但是PATCH请求在那里不起作用。

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不是函数。
告诉我如何配置ng-app和服务以使用angularjs发送PATCH请求。

最佳答案

向AngularJS添加PATCH的一个常见问题是,它没有用于该HTTP方法的默认Content-Type header (对于PUT,POST和DELETE,它为application/json; charset = utf-8)。这些是我配置的$ httpProvider添加补丁支持:

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

关于angularjs - 使用angularjs的补丁请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000176/

相关文章:

javascript - 在 404 代码上隐藏图像,仍然显示损坏的图像几毫秒

javascript - Angularjs Binding 2指令范围模型到父 Controller 模型

angularjs - 在 bootstrap 固定导航栏上方和下方添加内容

javascript - 使用指令显示范围内的数据

javascript - AngularJS 许多 Controller ng 设计 Material

javascript - Angular中与同级指令/ Controller 相关的列表(和主控/详细信息)

javascript - AngularJS 等待标签加载到 DOM 中

html - Angular 条件容器元素

javascript - Angular js : call parent controller method from directive

angularjs - 将工厂注入(inject)到指令范围之外定义的指令链接函数中