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

AngularJS:PUT使用URL发送数据,但不作为JSON数据发送

索正豪
2023-03-14
问题内容

这是我的 UserService

angular.module('userServices', ['ngResource']).factory('User', function($resource) {
  return $resource('/users/:userId',
      // todo: default user for now, change it
      {userId: 'bd675d42-aa9b-11e2-9d27-b88d1205c810'},
      {update: {method: 'PUT', params:{profile: '@profile'}, isArray: false}}
  );
});

在我的控制器中

$scope.save = function() {
    $scope.user.$update({profile: $scope.profile});
}

但是当我在Chrome中看到“网络”标签时,

Request URL:http://localhost:5000/users/bd675d42-aa9b-11e2-9d27-b88d1205c810?profile=%5Bobject+Object%5D
Request Method:PUT
Status Code:200 OK

如何将其作为data有效载荷发送?所以那URL是

http://localhost:5000/users/bd675d42-aa9b-11e2-9d27-b88d1205c810

和数据一样

{
  day_in_month: 5
}

我的端点希望数据是请求的一部分,以便可以将其解析为 request.json


问题答案:

我正在共享我的代码库中的代码,该代码在按照@lucuma的建议进行更改后有效

The UserService looks like

angular.module('userServices', ['ngResource']).factory('User', function($resource) {
  return $resource('/users/:userId',
      // todo: default user for now, change it
      {userId: 'bd675d42-aa9b-11e2-9d27-b88d1205c810'},
      {update: {method: 'PUT', data:{}, isArray: false}} // add data instead of params
  );
});

and ProfileController looks like

function ProfileController($scope, User) {
    $scope.profile = {};
    $scope.user = User.get();
    $scope.save = function () {
        // I was using $scope.user.$update before which was wrong, use User.update()
        User.update($scope.profile,
            function (data) {
                $scope.user = data; // since backend send the updated user back
            });
    }

进行这些更改后,我在Chrome中的“网络”标签符合预期

Request URL:http://localhost:5000/users/bd675d42-aa9b-11e2-9d27-b88d1205c810
Request Method:PUT
Status Code:200 OK
Request Payload:
{"day_in_month":25}


 类似资料:
  • 问题内容: 为什么在下面的代码中将数据发送为JSON格式而不是? 问题答案: 因为您既未指定请求内容类型,也未指定正确的JSON请求。这是发送JSON请求的正确方法: 注意事项: 使用此方法将javascript对象转换为本地和内置于现代浏览器中的JSON字符串。如果要支持较旧的浏览器,则可能需要包含json2.js 使用属性指定请求内容类型,以便向服务器指示发送JSON请求的意图 该属性用于服务

  • 问题内容: 我正在制作一个需要以JSONP格式返回数据的Web服务。我正在使用JSP的JSON标记库,我以为所有必须添加的都是括号,但是我找不到一个很好的资源来验证这一点。 例如,曾经的Web服务功能都使用以下功能返回: 这样对吗? 谢谢! 问题答案: JSONP只是一种黑客,它允许Web应用程序跨域检索数据。可以说它违反了同源起源策略(SOP)。它的工作方式是使用Javascript将“ scr

  • 问题内容: 我想在url中发送json数据,如下所示。 我怎样才能做到这一点? 问题答案: URL编码您的详细信息参数:

  • 在我的windows服务中,我需要将数据流传输到tcp服务器。我声明了一个全局TcpClient和NetworkStream,并在服务启动时启动它们。每隔30秒,我将通过一个大约30-40个字符串的数组发送到tcp服务器。 发送方法如下所示: 问题是每30秒只发送几个数据包,其中包含所有字符串,我希望每个字符串在一个数据包中发送。 那么如何获取网络流呢。写入方法立即发送数据包?如果每次调用send

  • 但我只能得到: 当请求实体的内容类型不是application/x-www-form-urlencoded时,使用@FormParam 我的代码:

  • 以下API使用postman工作: Spring boot,后端代码: ReactJS,前端代码:我在中有对象数组。 触发功能的按钮: 我需要将我的前端(ReactJS)代码更改为,就像我使用postman发布请求一样。当前JS代码导致以下错误响应: Servlet。路径为[]的上下文中的servlet[dispatcherServlet]的service()引发了异常[请求处理失败;嵌套异常为o