Tôi đang viết một tập lệnh JS nằm trong một hệ thống hiện đang thêm tiêu đề XID tùy chỉnh vào tất cả các yêu cầu Ajax qua jqXHR.setRequestHeader() trong một hàm được đăng ký với jQuery.ajaxPrefilter().Có cách nào để loại bỏ các tiêu đề Ajax được thiết lập bởi setRequestHeader() không?
Trong tập lệnh, tôi cần thực hiện một yêu cầu Ajax đến trang web của bên thứ ba, có Access-Control-Allow-Headers không được thiết lập để cho phép tiêu đề XID tùy chỉnh này.
Dường như tôi có 3 lựa chọn:
- Tìm một cách để loại bỏ tiêu đề XID trong $ .ajax()’s chức năng beforeSend, mà tôi đã khẳng định được gọi sau khi ajaxPrefilter() chức năng.
- Forgo sử dụng $ .ajax() hoàn toàn và chỉ tự viết những thứ Ajax.
- Có $ .ajax() trỏ tới phần cuối của hệ thống, chấp nhận tiêu đề XID tùy chỉnh và thực hiện yêu cầu tới trang web của bên thứ ba thông qua cURL.
Tùy chọn # 1 được ưu tiên, nếu có cách đơn giản để thực hiện, vì đó sẽ là tuyến đường sạch nhất và nhanh nhất. Chỉ cần không thể tìm ra cách.
Tôi đã cố gắng trọng nó như thế này, nhưng nó đã không làm việc:
beforeSend: function(jqXHR, settings) {
jqXHR.setRequestHeader('custom-xid-header', null);
}
Bất kỳ ý tưởng?
Khá chắc chắn điều này là không thể (không may). Tôi cảm thấy như thế này là dễ dàng để vượt qua, nhưng sẽ cần phải được thay đổi bởi jQuery. 'JqXHR' là một đối tượng bao bọc cho một' XMLHttpRequest' thực sự. Tất cả jQuery cần làm là theo dõi bất kỳ tiêu đề thêm/tùy chỉnh nào (như trong 'Object') và sử dụng các phương thức như' removeHeader' và 'setHeader' để sửa đổi đối tượng đó. Sau đó, khi yêu cầu thực sự được tạo và gửi đi, đối tượng đó sẽ được sử dụng để * thực sự * thêm tiêu đề yêu cầu vào yêu cầu thực. Tôi đoán tùy thuộc vào dòng công việc thực tế/vòng đời trong nội bộ, nó có thể hoặc không thể là – Ian
Chuột, đó là những gì tôi sợ. –
Có vẻ như đặt giá trị là 'null' hoặc' "" 'chỉ đặt giá trị trống ... không xóa toàn bộ tiêu đề. Nó có thể không phải là một ý tưởng tồi để gửi một yêu cầu tính năng cho jQuery. Và sử dụng điều này làm ví dụ. Một lần nữa, nó có thể hoặc không thể có thể tùy thuộc vào vòng đời trong nội bộ – Ian