簡體   English   中英

帶主體的角度$ http.delete請求

[英]Angular $http.delete request with body

所以我看了這篇文章: 是否允許實體實體進行http刪除請求

這似乎表明,雖然可以在某種概念上做到這一點,但實際上它可能並不可行,因為瀏覽器只是忽略了它。

我需要通過一些express.js身份驗證中間件,並且我不想將用戶詳細信息附加到url參數中。 我所有其他需要驗證的請求都將這些詳細信息附加到請求的正文中。

有什么辦法可以強制這樣做嗎? 我看到了其他一些帖子,其中有些人似乎成功地通過了刪除請求傳遞了屍體。

我正在運行節點/帆后端。 對於刪除請求,它始終將主體記錄為未定義。 有什么辦法可以修改

Sails API提取要從參數中刪除對象的ID,因此我們必須將ID附加到URL。

但是,如果我想在處理刪除請求之前在主體中傳遞一些身份驗證詳細信息以進行服務器端驗證,則不能像在$ http.post中那樣將它們作為刪除請求的第二個參數粘貼到一個對象中。 。

Angular的post方法會自動將我們作為第二個參數插入的內容分配給請求的主體,而delete方法則不會

Angular的$ http.delete方法確實允許我們提供一個配置對象作為第二個參數,通過它我們可以訪問'data'屬性。 這與post通過其第二個參數進行操作的方式相同。

因此,如果需要將正文附加到刪除請求,則可以使用以下內容:

$http.delete('/api/' + objectToDelete.id, {data: {id: currentUser().id, level: currentUser().level}});

這將在url參數中傳遞要刪除的ID的對象,並在正文中將我的用戶憑據作為對象傳遞。

老實說,每當麻煩聽起來像是“ REST的限制”時,重新考慮策略和理念可能是個好主意。

我需要通過一些身份驗證中間件

我不想將用戶詳細信息附加到url參數

我沒有直接回答這個問題,但是您應該知道

  • URL參數(或查詢,但仍然是URL)
  • 身體

第三種選擇是“將值傳遞到服務器”:

  • 請求標題

我只是建議考慮使用第三個選項來提供您的憑據: request header

編輯以下附錄僅適用於任何“外部”中間件,例如代理服務器或其他任何東西,而不是sails.js中的真正表達中間件

另外,最好將中間件在重定向到實際操作之前剝離這些標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM