[英]How to send data with angularjs $http.delete() request?
我有一個資源“角色”,它與“用戶”有多對多的關系。 要管理“角色”,我需要將角色 ID 和用戶 ID 發送到服務器,以便它從正確的用戶(不一定是登錄用戶)中刪除角色
這是我正在嘗試的,但根據文檔,這是不可能的。 我知道我可以在 uri 中發送兩個 id,但是我的 laravel 后端會自動設置資源/{resourceid} 的資源豐富的路由,如果可能的話我想使用它。 有沒有辦法做到這一點,我失蹤?
var removeRole = function (roleid, userid) {
var input =[];
input.user = userid;
$http.delete('/roles/' + roleid, input).success(function (data, status) {
console.log(data);
});
};
您可以通過像 /users/1/roles/2 這樣的 URL 執行 http DELETE。 這將是最 RESTful 的方式。
否則我想您可以將用戶 ID 作為查詢參數的一部分傳遞嗎? 就像是
$http.delete('/roles/' + roleid, {params: {userId: userID}}).then...
我的建議:
$http({
method: 'DELETE',
url: '/roles/' + roleid,
data: {
user: userId
},
headers: {
'Content-type': 'application/json;charset=utf-8'
}
})
.then(function(response) {
console.log(response.data);
}, function(rejection) {
console.log(rejection.data);
});
$http.delete
方法不接受請求正文。 你可以試試這個解決方法:
$http( angular.merge({}, config || {}, {
method : 'delete',
url : _url,
data : _data
}));
在config
您可以傳遞配置數據,如標題等。
多對多關系通常有一個鏈接表。 將此“鏈接”視為一個實體,並為其提供唯一 ID,然后在刪除請求中發送該 ID。
您將擁有像 /user/role 這樣的 REST 資源 URL 來處理對用戶角色“鏈接”實體的操作。
我建議閱讀這個網址http://docs.angularjs.org/api/ngResource/service/$resource
並重新評估您如何調用資源的刪除方法。
理想情況下,您希望調用資源項本身的刪除,而不是將資源的 id 傳遞到 catch all delete 方法中
但是 $http.delete 接受一個包含 url 和 data 屬性的配置對象,您可以在那里制作查詢字符串或將對象/字符串傳遞到數據中
也許沿着這些路線
$http.delete('/roles/'+roleid, {data: input});
請嘗試在httpoptions
傳遞參數,您可以按照下面的功能
deleteAction(url, data) {
const authToken = sessionStorage.getItem('authtoken');
const options = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
Authorization: 'Bearer ' + authToken,
}),
body: data,
};
return this.client.delete(url, options);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.