jQuery ajaxSetup beforeSend ไม่ทำงานใน IE8

โครงการของฉันใช้ jQuery 1.4.2 ฉันมีข้อมูลความปลอดภัยบางอย่างที่ฉันเพิ่มลงในส่วนหัว AJAX ของฉัน... วิธีที่ฉันทำคือใช้ $.ajaxSetup() และตั้งค่าฟังก์ชัน beforeSend

$(document).ready(function (e) {
    $.ajaxSetup({
        global: true,
        beforeSend: function (jqXHR, settings) {
            var verificationToken = 'some encrypted string';
            jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken);
        }
    });
})

ตามที่ฉันเข้าใจ สิ่งนี้ควรดำเนินการทุกครั้งที่ฉันโทรหา $.ajax() ใช่ไหม ทำงานได้ดีใน Chrome, Firefox, IE9 และอื่นๆ แต่บางครั้งก็ ไม่ ใน IE7/8

ที่นี่ฉันเรียกมันว่า:

$.ajax({
    type: "POST",
    async: true,
    data: 'somedata',
    url: "/some/url",
    success: function (data) {
        alert("success");
    },
    error: function (data) {
        alert("error");
    }
});

ฉันพบวิธีแก้ปัญหาแล้ว ซึ่งก็คือการเพิ่ม beforeSend โดยตรงในการเรียก $.ajax() (ด้านล่าง) แต่ฉันต้องการทำสิ่งนี้ทั่วโลกจริงๆ แทนที่จะต้องเพิ่มมันลงในหลายๆ ตำแหน่งในโค้ด .. .

$.ajax({
    type: "POST",
    async: true,
    data: 'somedata',
    url: "/some/url",
    success: function (data) {
        alert("success");
    },
    error: function (data) {
        alert("error");
    }
    beforeSend: function (jqXHR, settings) {
        var verificationToken = 'some encrypted string';
        jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken);
    }
});

มีเบาะแสอะไรบ้าง?

ขอบคุณ! นีล


person NeilD    schedule 28.04.2011    source แหล่งที่มา
comment
สามารถอัพเดตเวอร์ชั่น jquery ได้หรือไม่? ปัญหาที่นี่คือ Jquery เวอร์ชัน 1.4 โดยใช้ XMLHttpRequest   -  person Eric T    schedule 29.04.2011
comment
อัปเดต jQuery ได้ยาก... มีการใช้งานค่อนข้างมากในไซต์ และอาจเป็นเรื่องยากที่จะทดสอบทุกอย่างอีกครั้ง มีการเปลี่ยนแปลง API ที่สำคัญระหว่าง 1.4.x และ 1.5 หรือไม่   -  person NeilD    schedule 30.04.2011
comment
ไม่แน่ใจ จะอ่านให้จบนะพี่   -  person Eric T    schedule 04.05.2011
comment
ฉันรู้ว่านี่เก่าแล้ว แต่การโทร ajax และ ajaxSetup ของคุณใน wrapper พร้อมเอกสารเดียวกันหรือไม่   -  person Mark Schultheiss    schedule 08.02.2012


คำตอบ (1)


ตกลง ในกรณีที่ไม่มีคำตอบอื่นใด ฉันขอประกาศว่านี่เป็นจุดบกพร่องใน JQuery 1.4.x วิธีแก้ไขคืออัปเกรดเป็น JQuery เวอร์ชันใหม่กว่า ซึ่งน่าเสียดายที่เป็นไปไม่ได้สำหรับฉัน

หากใครมีคำตอบ/แก้ไขที่ดีกว่านี้ ฉันยินดีที่จะลบคำตอบนี้และทำเครื่องหมายว่าถูกต้อง

person NeilD    schedule 18.05.2011
comment
มันไม่ใช่การอัพเกรด jQuery ฉันเห็นสิ่งเดียวกันใน jQuery 1.8 - person Trip; 23.10.2012
comment
ฉันได้รับสิ่งนี้ใน 1.10.3 - person iain; 17.08.2013
comment
ฉันไม่พบ jquery v1.10.3 เลย แต่สำหรับ v1.10.2 มันได้รับการแก้ไขแล้ว แต่แปลกที่สำหรับ v1.12.4 มันไม่ได้ผลสำหรับฉัน - person Chetan Joshi; 17.09.2016