Có thể ngăn trình duyệt theo dõi chuyển hướng khi gửi XMLHttpRequest-s (tức là để lấy lại mã trạng thái chuyển hướng và xử lý nó)?Ngăn chặn chuyển hướng của Xmlhttprequest
Trả lời
Không theo the W3C standard for the XMLHttpRequest object (nhấn mạnh thêm):
Nếu câu trả lời là một chuyển hướng HTTP:
Nếu nguồn gốc của URL được truyền đạt bởi các tiêu đề Địa điểm là cùng nguồn gốc với Nguồn gốc XMLHttpRequest và chuyển hướng không vi phạm các cảnh báo vòng lặp vô hạn , minh bạch theo chuyển hướng trong khi quan sát quy tắc sự kiện yêu cầu cùng nguồn gốc.
Họ considering nó cho một phiên bản tương lai:
đặc điểm kỹ thuật này không bao gồm các tính năng sau đang được coi cho một phiên bản tương lai của đặc điểm kỹ thuật này:
- Thuộc tính để tắt các chuyển hướng sau;
nhưng đặc điểm latest không còn đề cập đến điều này.
Không có bạn không có bất kỳ vị trí nào trong API được hiển thị bởi XMLHttpRequest cho phép bạn ghi đè hành vi mặc định của nó sau 301 hoặc 302 tự động.
Nếu khách hàng đang chạy IE trên cửa sổ thì bạn có thể sử dụng WinHTTP thay vào đó để đặt tùy chọn ngăn chặn hành vi đó nhưng đó là giải pháp rất hạn chế.
Bạn có thể sử dụng thuộc tính responseURL
để nhận đích chuyển hướng hoặc kiểm tra xem phản hồi cuối cùng có được lấy từ vị trí bạn chấp nhận hay không.
Điều này tất nhiên có nghĩa là kết quả được tìm nạp, nhưng ít nhất bạn có thể nhận được thông tin cần thiết về đích chuyển hướng và ví dụ như phát hiện các điều kiện khi bạn muốn loại bỏ phản hồi.
mới Fetch API hỗ trợ chế độ khác nhau của xử lý chuyển hướng: follow
, error
và manual
, nhưng tôi không thể tìm thấy một cách để xem các URL mới hoặc mã trạng thái khi chuyển hướng đã bị hủy. Bạn chỉ có thể dừng chuyển hướng chính nó, và sau đó nó trông giống như một lỗi (trả lời trống). Nếu đó là tất cả những gì bạn cần, bạn tốt để đi.
Ngoài ra, bạn nên lưu ý rằng các yêu cầu được thực hiện qua API này không thể hủy được
yet.
Họ are ngay bây giờ.
Đối với XMLHttpRequest, bạn có thể HEAD
máy chủ và kiểm tra xem các URL đã thay đổi:
var http = new XMLHttpRequest();
http.open('HEAD', '/the/url');
http.onreadystatechange = function() {
if (this.readyState === this.DONE) {
console.log(this.responseURL);
}
};
http.send();
Bạn sẽ không nhận được mã trạng thái, nhưng sẽ tìm thấy URL mới mà không cần tải toàn bộ trang từ nó.
Đôi khi sử dụng 'OPTIONS' có thể là lựa chọn tốt hơn, dù sao chỉ hoạt động cho mục đích không chung, vv quản trị viên đã định cấu hình chuyển hướng toàn bộ trang web/lược đồ, chẳng hạn như HTTP -> HTTPS –
- 1. Ngăn chặn chuyển hướng đăng nhập cho Spring Security
- 2. Làm thế nào để ngăn chặn urllib của Python (2) theo một chuyển hướng
- 3. Chặn XMLHttpRequest và sửa đổi responseText
- 4. Ngăn chặn fb.ui() di chuyển trình duyệt
- 5. Làm thế nào để ngăn chặn IFRAME từ chuyển hướng cửa sổ cấp cao
- 6. Làm thế nào để ngăn chặn được chuyển hướng với PHP cURL
- 7. Làm thế nào để ngăn chặn jQuery ajax sau khi chuyển hướng sau khi đăng bài?
- 8. Làm thế nào để ngăn chặn một neo từ chuyển hướng bằng cách sử dụng JQuery
- 9. ngăn iframe chuyển hướng trang mẹ
- 10. Ngăn chặn giao diện web của Python từ trình duyệt
- 11. ngăn điều hướng bản đồ google v2, ngăn chặn bản đồ google
- 12. Ngăn chặn DOM XSS
- 13. UIGestureBộ lọc ngăn chặn nhận dạng bảng di chuyển
- 14. Ngăn chặn tab di chuyển qua thanh địa chỉ
- 15. Ngăn chặn cử chỉ di chuyển qua UIScrollView ngắt cuộn
- 16. Ngăn chặn ngoại lệ
- 17. Ngăn chặn di chuyển trên trình duyệt di động, mà không ngăn chặn việc nhập tiêu điểm
- 18. Lệnh chuyển hướng/chặn cuộc gọi trong chức năng gói
- 19. Tại sao trình duyệt không thực hiện theo các chuyển hướng bằng XMLHTTPRequest và CORS?
- 20. Ngăn chặn tiêm LDAP
- 21. Ngăn chặn đầu ra cout với hàm
- 22. Haskell hĐóng ngăn chặn
- 23. Ngăn chặn CSRF?
- 24. Làm cách nào để ngăn chặn bảo mật mùa xuân khỏi việc thêm; jsessionid = XXX để đăng nhập chuyển hướng?
- 25. Spring MVC và Jetty: Ngăn chặn jsessionid không được sử dụng trong RedirectView khi chuyển hướng đến trang bên ngoài
- 26. Làm thế nào để ngăn chặn chuyển hướng tập tin từ dữ liệu Chương trình VirtualStore \ ProgramData
- 27. ngăn chặn kích hoạt của onUpdate của WidgetProvider
- 28. Ngăn chặn nhiều trường hợp của ứng dụng của tôi
- 29. Ngăn chuyển hướng biểu mẫu HOẶC làm mới khi gửi?
- 30. nhận xét django: cách ngăn chặn lỗi biểu mẫu khi chuyển hướng người dùng đến trang xem trước?
Điều lố bịch là khi chuyển hướng trong suốt liên quan đến việc ghi đè một số tiêu đề HTTP được đặt trong yêu cầu ban đầu. Cụ thể, nếu tiêu đề "Chấp nhận" được đặt thành loại nội dung cụ thể, Firefox sẽ không bao gồm tiêu đề này khi thực hiện theo chuyển hướng (điều này khiến cho việc phát triển các dịch vụ web dựa trên REST hoàn toàn khó hơn, sử dụng tiêu đề này ... càu nhàu). – ruquay
Một số tìm kiếm khác mang lại cho tôi báo cáo lỗi khá cũ này: https://bugzilla.mozilla.org/show_bug.cgi?id=401564 – ruquay
Đồng ý, lỗi thiết kế hoàn toàn rediculus. – Rasive