当前位置: 首页 > 面试题库 >

使用angularjs的补丁请求

颛孙智勇
2023-03-14
问题内容

我正在使用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标头(对于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向Django Deliciouspie API发送PATCH请求。我的代码是 但是,当我尝试使用此代码发送请求时,出现了一个错误消息,即http.patch不是函数。告诉我如何配置ng- app和服务以使用AngularJs发送PATCH请求。我读过PATCH请求在$ resource中可用,所以我也对$ resourc

  • 我刚刚开始从我现有的网络库移植到Android的Volley。到目前为止,我已经成功地实现了适用的Volleys ImageLoader。现在,我试图让我的第一个超文本传输协议调用和运行,但我发现这个错误。 注意:我有意以补丁请求开始,因为我将经常使用它们。另外,我的版本Volley也支持补丁:https://android.googlesource.com/platform/frameworks

  • 我想执行我们的服务器支持的 PATCH 请求,以便使用 Jersey 客户端进行测试。我的代码如下,有人可以让我知道下面的代码有什么问题吗? 这是完全的例外,

  • Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。 git cherry-pick git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。 在 变基与拣选工作流 一节中描述和演示了

  • 在我的spring-boot服务中,我使用https://github.com/java-json-tools/json-patch用于处理PATCH请求。 一切似乎都很好,除了一种避免修改不可变字段的方法,如对象ID、creation_time等。我在Github上发现了一个类似的问题https://github.com/java-json-tools/json-patch/issues/21我

  • 当我尝试点击具有方法的请求时,我收到以下错误:PATCH 使用JMeter版本:-apache-JMeter-5.4.1 如果我能得到专家的帮助来解决他们的问题,那将会很有帮助。 谢谢