質問

バックエンドとしてのDjang-Tastypieを使用してAPIに取り組んでいます。AngularyJS $ HTTPを使用してCrudリクエストを送信しています。GET、POST、すべてを置くすべてが問題ありませんが、パッチリクエストを送信しようとしているときにエラーメソッドパッチが定義されていません。私は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メソッドのデフォルトのコンテンツ型ヘッダー(Application / JSON; PUT、POST、DELETEのためのCHARSET= UTF-8)ではありません。そして、これらはパッチサポートを追加するための$ httpproviderの私の構成です:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top