ฉันคิดว่าคำถามของคุณน่าสนใจ แต่ปัญหาโดยรวมดูเหมือนว่าฉันจะเข้าใจผิดมากกว่า อย่างน้อยฉันจะพยายามอธิบายความเข้าใจของฉันเกี่ยวกับปัญหา
การเปลี่ยนเส้นทางแบบเงียบ (โปร่งใส) เป็นส่วนหนึ่งของXMLHttpRequestข้อกำหนด (ดูที่นี่โดยเฉพาะคำว่า "... ทำตามการเปลี่ยนเส้นทางอย่างโปร่งใส ... ") กล่าวถึงมาตรฐานเดียวที่ตัวแทนผู้ใช้ (เว็บเบราว์เซอร์) สามารถป้องกันหรือแจ้งของบางชนิดของการเปลี่ยนเส้นทางโดยอัตโนมัติ XMLHttpRequestแต่มันไม่ได้เป็นส่วนหนึ่งของ เป็นส่วนของการกำหนดค่าไคลเอ็นต์ HTTP (การกำหนดค่าระบบปฏิบัติการ) หรือการกำหนดค่าเว็บเบราว์เซอร์ ดังนั้นจึงjQuery.ajaxไม่มีตัวเลือกใดที่คุณสามารถป้องกันการเปลี่ยนเส้นทางได้
คุณจะเห็นว่าการเปลี่ยนเส้นทาง HTTP เป็นส่วนหนึ่งของโปรโตคอล HTTP XMLHttpRequestและไม่ใช่ส่วนหนึ่งของ ดังนั้นมันจึงอยู่ในอีกระดับของนามธรรมหรือเครือข่ายสแต็ก ตัวอย่างเช่นข้อมูลจากXMLHttpRequestสามารถดึงจากพร็อกซี HTTP หรือจากแคชของเบราว์เซอร์ในเครื่องและเป็นส่วนหนึ่งของโปรโตคอล HTTP ส่วนใหญ่เป็นเซิร์ฟเวอร์ที่ให้ข้อมูลและไม่ใช่ไคลเอนต์ที่มีผลต่อการแคช
คุณสามารถเปรียบเทียบข้อกำหนดจากคำถามของคุณกับข้อกำหนดเพื่อป้องกันการเปลี่ยนที่อยู่ IP ของเว็บเซิร์ฟเวอร์หรือการเปลี่ยนเส้นทาง IP ระหว่างการสื่อสาร ทุกสิ่งที่สามารถที่น่าสนใจในบางสถานการณ์ แต่มีบางส่วนของระดับของสแต็คการสื่อสารอื่นและไม่สามารถจัดการได้โดยหรือjQuery.ajaxXMLHttpRequest
XMLHttpRequestกล่าวว่าการกำหนดค่ามาตรฐานลูกค้าสามารถมีตัวเลือกซึ่งจะช่วยป้องกันการเปลี่ยนเส้นทาง ในกรณีของ "Microsoft world" ซึ่งฉันรู้ดีกว่าคุณสามารถดูที่ฟังก์ชันWinHttpSetOptionซึ่งสามารถใช้เพื่อตั้งค่าWINHTTP_OPTION_DISABLE_FEATUREตัวเลือกด้วยWINHTTP_DISABLE_REDIRECTSค่า อีกวิธีหนึ่งคือการใช้WINHTTP_OPTION_REDIRECT_POLICYตัวเลือกที่มีWINHTTP_OPTION_REDIRECT_POLICY_NEVERค่า หนึ่งคุณลักษณะเพิ่มเติมที่หนึ่งที่สามารถใช้ในการ Windows เป็นWinHttpSetStatusCallbackWINHTTP_CALLBACK_FLAG_REDIRECTฟังก์ชั่นที่สามารถตั้งค่าฟังก์ชั่นการโทรกลับได้รับการแจ้งเตือนบางอย่างเช่น
ดังนั้นจึงเป็นไปได้ที่จะทำใช้ความต้องการของคุณในทั่วไป แต่การแก้ปัญหาจะต้องอาจจะไม่ได้เป็นอิสระจากระบบการดำเนินงานหรือเว็บเบราเซอร์และจะไม่ได้อยู่ในระดับหรือjQuery.ajaxXMLHttpRequest