2013-05-06 28 views
5

Tôi đang sử dụng XDomainRequest trong IE8 & 9 để gửi yêu cầu tới máy chủ. Với XMLHttpRequests trong các trình duyệt khác, cả hai một OriginReferer tiêu đề được gửi đi, và có thể trông như thế này:IE8/9 AJAX/CORS (XDomainRequest) gửi tiêu đề tham chiếu

Origin: http://www.example.com 
Referer: http://www.example.com/mypage/index.htm 

Nhưng XDomainRequest chỉ gửi các xứ (vì vậy tôi không thấy URL gọi đầy đủ). Có cách nào để buộc nó cũng gửi Người giới thiệu không? Tôi đang cố gắng tránh gửi nó như một chuỗi truy vấn hoặc tham số POST.

Tôi biết rằng XDomainRequest không cho phép tiêu đề tùy chỉnh, nhưng tôi hy vọng rằng vì Người giới thiệu là tiêu đề chuẩn nên có thể có một số cách để bật tiêu đề đó.

+1

Bạn cần người giới thiệu cho mục đích gì? – Bergi

+0

Để xem URL đầy đủ của người gọi. Nguồn gốc chỉ cung cấp miền gốc. Cụ thể, tôi sử dụng tính năng này để ghi nhật ký và kiểm soát truy cập rất thô (giả mạo liên kết giới thiệu cần sự tham gia của người dùng cuối hoặc plugin trình duyệt). – Dave

+0

Kiểm soát truy cập? Không sử dụng Referer cho điều đó, nó có thể dễ dàng bị giả mạo và không được đảm bảo là chính xác (ví dụ IE, proxy của bạn, v.v.). – Bergi

Trả lời

1

Một trong những người đồng sáng lập của tôi gặp sự cố này, rằng dịch vụ CORS họ đang gọi các tiêu đề bắt buộc để "bảo mật", nhưng IE không thể gửi tiêu đề. Chúng tôi không tìm thấy giải pháp cho IE8/9 header vấn đề ngoài:

  1. Có dịch vụ không đòi hỏi một tiêu đề
  2. Có một proxy đó sẽ nối các tiêu đề bạn cần vào yêu cầu của bạn.

Tùy chọn 2 giải thích là - Thiết lập proxy web, sẽ chấp nhận cuộc gọi không có tiêu đề. Sau đó nó làm cho CORS gọi và thêm tiêu đề vào yêu cầu. Nó nhận được tải trọng và chuyển tiếp nó lên yêu cầu của bạn.

Đối với những gì đáng giá, chúng tôi đã đi kèm với tùy chọn 1.

Các vấn đề liên quan