我有一個篩選器,它可以掃描我的應用程序中的所有請求。我想要阻止請求,如果它請求一個特定的網址。我可以檢查這個,如果條件匹配,我不會做chain.doFilter,但仍然會將請求移到黑色頁面。如何阻止此請求繼續進行並停留在當前頁面 - 意味着用戶不應該看到他點擊的屏幕有任何改變?Servlet請求阻止
2
A
回答
1
你不能。瀏覽器已經提出請求,並且已經無法使用。你可能會破解一些JavaScript,它會默默地「點擊」瀏覽器的「返回」按鈕,但毫無疑問,它具有各種令人討厭的問題。
但是一旦瀏覽器發送了請求,當前頁面就「死」了。
2
的HTTP status code 204可能會奏效,但它不能保證所有瀏覽器的工作:
204無內容
服務器已完成要求 但並不需要返回 實體並且可能想要返回 已更新的元信息。響應 可能包含新的或更新的 元信息,其形式爲 實體標題,如果存在 應該與 請求的變體相關聯。
如果客戶是用戶代理,它 不應改變從它的文件視圖 ,其引起 請求被髮送。這種反應主要是 旨在允許輸入用於操作至 發生而不引起的改變 用戶代理的活動文檔視圖, 雖然任何新的或更新 元信息應該在當前應用於 該文檔的用戶 劑的活性視圖。
204響應必須不包括 消息體,且因此是總是通過 頭字段之後的第一空行 終止。
(重點煤礦)
或者,你可以嘗試以下策略之一:
- 有這個servlet返回307(臨時重定向)回使用HTTP引用領域的前一頁。這種方法可能會導致緩存和代理問題。
- 使用ajax從您的servlet加載內容。你將不得不用直接鏈接來替代啓動Ajax調用的JavaScript調用來替換頁面的一部分。以這種方式加載內容時,瀏覽器中的URL不會更改,這可能會或可能不合意。許多網站使用混合,包括StackOverflow。任何應該是「permalink-able」的東西都會通過常規鏈接導航,但每個頁面的部分內容都是通過ajax懶洋洋地提取的。
最後,告訴用戶鏈接已關閉,這有什麼問題?讓servlet返回403(禁止)。
相關問題
- 1. 阻止請求
- 2. POST請求 - 跨來源請求阻止
- 3. Java servlet異步上下文阻止其他請求
- 4. 阻止跨源請求 - NodeJs
- 5. 如何阻止HTTP請求?
- 6. Mailchimp阻止API請求
- 7. 阻止HTTP POST請求
- 8. iOS阻止HTTPS請求
- 9. Apache阻止多個請求?
- 10. .htcaccess阻止cron請求?
- 11. Heroku阻止請求到URL
- 12. Spring - @RequestBody阻止請求?
- 13. 阻止跨源請求 - Laravel
- 14. 跨域請求被阻止
- 15. PhantomJS上的阻止請求
- 16. 跨域請求被阻止
- 17. PHP獲取請求阻止
- 18. 禁止Mule ESB阻止一些請求
- 19. 如何停止Reporting Services阻止請求?
- 20. 發送請求後中止Servlet調用
- 21. Servlet請求
- 22. tomcat請求servlet
- 23. 請求和servlet
- 24. Java + Cloudflare - 阻止某個url被阻止的下載請求?
- 25. Chrome請求阻止(實驗功能) - 如何取消阻止?
- 26. MvcMailer SendAsync是否阻止ASP.NET MVC請求?
- 27. 我應該阻止HTTP 1.0請求嗎?
- 28. Javascript Popstate事件阻止Ajax請求
- 29. PHP跨域請求被阻止
- 30. Extjs兩個Ajax請求阻止問題