javascript – 使用方法:POST时,AngularJS $资源调用错误的API URL
作者:互联网
不是最简单的问题.
无论如何,我的应用程序是基于nodejs / expressjs构建的,并为url设置了API:
编辑:我正在使用的当前代码是:
$scope.updateProduct = $resource('/api/updateProduct/:product/:param/:value',{},{
query: {method:'GET'},
post: {method:'POST'},
save: {method:'PUT', params: {brand: '@brand', param:'@param', value:'@value'}},
remove: {method:'DELETE'}
});
$scope.updateProduct.save({
product : $scope.post._id,
param: 'likes',
value: $scope.user._id
});
目前它调用/ api / updateProduct而不是/ api / updateProduct /< product> /< param> /< value>喜欢它应该/喜欢它执行$scope.updateProduct.get()时.
在我的控制台中,我看到(作为示例):
PUT /api/updateBrand/Quay%20Eyewear%20Australia/userTags/sunglasses,%20classic 200 30ms - 2.31kb
但是,API实际上并未访问/没有任何反应.有趣的是,如果我去localhost:5000 / api / updateBrand / Quay Eyewear Australia / userTags / sunglasses,在我的浏览器中经典,它会发布正确的数据并在我的数据库中更新产品,所以这肯定是错误的$正在调用资源.
解决方法:
正如您在ngResource docs中看到的那样,$resource接收3个参数:
$resource(url [,paramDefaults] [,actions]);
您将动作作为参数传递.
正确的版本是:
$scope.updateProduct = $resource('/api/updateProduct/:product/:param/:value',{}, {'save':{method:'POST'}});
请注意,它甚至不是必需的,因为当您使用$resource时,您已经创建了默认方法:
{
'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
标签:javascript,angularjs,node-js,api,angular-resource 来源: https://codeday.me/bug/20190629/1324836.html