我的休息api应对以下网址的DELETE请求
/api/users/{slug}
Run Code Online (Sandbox Code Playgroud)
因此,通过向指定用户(slug)发送删除,用户将被删除.这是服务代码:
angular.module('UserService',['ngResource']).factory('User', function($resource){
var User = $resource('/api/users/:id1/:action/:id2', //add param to the url
{},
{
delete_user: {
method: 'DELETE',
params: {
id1:"@id"
}
},
update: {
method: 'PUT',
params: {
id1:"@id"
}
}
});
return User;
});
Run Code Online (Sandbox Code Playgroud)
我通过调用删除功能
user.$delete_user({id:user.id}, function(){}, function(response){});
Run Code Online (Sandbox Code Playgroud)
但是请求似乎发送到了错误的URL.
/api/users?id=4
Run Code Online (Sandbox Code Playgroud)
所以参数实际上是丢失的,因此我得不到405方法.有没有机会以我的api风格发送删除请求?
joa*_*mbl 29
params是您的操作中的默认请求参数的对象.如果你想要url参数,你必须在第二个参数中指定它们,如下所示:
angular.module('UserService',['ngResource']).factory('User', function($resource){
var User = $resource('/api/users/:id1/:action/:id2', //add param to the url
{id1:'@id'},
{
delete_user: {
method: 'DELETE'
}
});
return User;
});
Run Code Online (Sandbox Code Playgroud)
这适用于:
// user has id
user.$delete_user(function(){
//success
},function(){
// error
});
Run Code Online (Sandbox Code Playgroud)
要么
var data = {id:'id_from_data'};
User.delete_user({},data);
Run Code Online (Sandbox Code Playgroud)
要么
var params = {id1:'id1_from_params'};
User.delete_user(params);
Run Code Online (Sandbox Code Playgroud)
我做了一个plnkr示例 - 您必须打开控制台以验证DELETE请求是否正确.
请参阅Angular资源文档中的parameterDefaults.
| 归档时间: |
|
| 查看次数: |
46310 次 |
| 最近记录: |