chrome.webRequest

คำอธิบาย

ใช้ chrome.webRequest API เพื่อสังเกตและวิเคราะห์การเข้าชม รวมถึงสกัดกั้น บล็อก หรือแก้ไขคำขอที่อยู่ระหว่างดำเนินการ

สิทธิ์

webRequest

คุณต้องประกาศสิทธิ์ "webRequest" ใน ไฟล์ Manifest ของส่วนขยายเพื่อใช้ Web Request API พร้อมกับสิทธิ์โฮสต์ที่จำเป็น หากต้องการสกัดกั้นคำขอทรัพยากรย่อย ส่วนขยายต้องมีสิทธิ์เข้าถึงทั้ง URL ที่ขอและผู้เริ่มต้น เช่น

{   "name": "My extension",   ...   "permissions": [     "webRequest"   ],   "host_permissions": [     "*://*.google.com/*"   ],   ... } 

webRequestBlocking

ต้องลงทะเบียนตัวแฮนเดิลเหตุการณ์การบล็อก ตั้งแต่ Manifest V3 เป็นต้นไป ฟีเจอร์นี้จะใช้ได้กับส่วนขยายที่ติดตั้งตามนโยบายเท่านั้น

webRequestAuthProvider

ต้องใช้เพื่อใช้วิธี onAuthRequired ดูการจัดการการตรวจสอบสิทธิ์

แนวคิดและการใช้งาน

วงจรของคำขอ

Web Request API จะกำหนดชุดเหตุการณ์ที่เกิดขึ้นตามวงจรของคำขอเว็บ คุณใช้ เหตุการณ์เหล่านี้เพื่อสังเกตและวิเคราะห์การเข้าชมได้ เหตุการณ์แบบซิงโครนัสบางอย่างจะช่วยให้คุณสกัดกั้น บล็อก หรือแก้ไขคำขอได้

วงจรของเหตุการณ์สำหรับคำขอที่สำเร็จแสดงไว้ที่นี่ ตามด้วยคำจำกัดความของเหตุการณ์

วงจรของคำขอเว็บจากมุมมองของ WebRequest API

onBeforeRequest (อาจเป็นแบบซิงโครนัส)
เริ่มทำงานเมื่อกำลังจะมีการส่งคำขอ ระบบจะส่งเหตุการณ์นี้ก่อนที่จะสร้างการเชื่อมต่อ TCP และใช้เพื่อยกเลิกหรือเปลี่ยนเส้นทางคำขอได้
onBeforeSendHeaders (อาจเป็นแบบซิงโครนัส)
ทริกเกอร์เมื่อกำลังจะมีการส่งคำขอและมีการเตรียมส่วนหัวเริ่มต้นแล้ว เหตุการณ์นี้มีจุดประสงค์เพื่อให้ส่วนขยายเพิ่ม แก้ไข และลบส่วนหัวของคำขอ (*) ได้ onBeforeSendHeaders เหตุการณ์จะส่งไปยังผู้ติดตามทั้งหมด ดังนั้นผู้ติดตามที่แตกต่างกันอาจพยายาม แก้ไขคำขอ โปรดดูส่วนรายละเอียดการติดตั้งใช้งานเพื่อดูวิธีจัดการเรื่องนี้ คุณใช้เหตุการณ์นี้ เพื่อยกเลิกคำขอได้
onSendHeaders
ทริกเกอร์หลังจากส่วนขยายทั้งหมดมีโอกาสแก้ไขส่วนหัวของคำขอ และแสดงเวอร์ชันสุดท้าย (*) ระบบจะทริกเกอร์เหตุการณ์ก่อนที่จะส่งส่วนหัวไปยังเครือข่าย เหตุการณ์นี้เป็น ข้อมูลและจัดการแบบไม่พร้อมกัน โดยจะไม่อนุญาตให้แก้ไขหรือยกเลิกคำขอ
onHeadersReceived (อาจเป็นแบบซิงโครนัส)
ทริกเกอร์ทุกครั้งที่ได้รับส่วนหัวการตอบกลับ HTTP(S) เนื่องจากการเปลี่ยนเส้นทางและคำขอการตรวจสอบสิทธิ์ จึงอาจเกิดขึ้นหลายครั้งต่อคำขอ เหตุการณ์นี้มีไว้เพื่อให้ส่วนขยายสามารถ เพิ่ม แก้ไข และลบส่วนหัวของการตอบกลับ เช่น ส่วนหัว Content-Type ขาเข้า ระบบจะประมวลผล คำสั่งแคชก่อนที่จะทริกเกอร์เหตุการณ์นี้ ดังนั้นการแก้ไขส่วนหัว เช่น Cache-Control จึงไม่มีผลต่อแคชของเบราว์เซอร์ นอกจากนี้ ยังช่วยให้คุณยกเลิกหรือเปลี่ยนเส้นทางคำขอได้ด้วย
onAuthRequired (อาจเป็นแบบซิงโครนัส)
ทริกเกอร์เมื่อคำขอต้องมีการตรวจสอบสิทธิ์ของผู้ใช้ เหตุการณ์นี้สามารถจัดการแบบซิงโครนัสเพื่อ ระบุข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์ โปรดทราบว่าส่วนขยายอาจให้ข้อมูลเข้าสู่ระบบที่ไม่ถูกต้อง โปรดระวัง อย่าป้อนข้อมูลเข้าสู่ระบบที่ไม่ถูกต้องซ้ำๆ จนเกิดลูปไม่สิ้นสุด นอกจากนี้ยังใช้เพื่อ ยกเลิกคำขอได้ด้วย
onBeforeRedirect
ทริกเกอร์เมื่อกำลังจะดำเนินการเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางอาจเกิดขึ้นจากรหัสการตอบกลับ HTTP หรือจากส่วนขยาย เหตุการณ์นี้เป็นเหตุการณ์ให้ข้อมูลและจัดการแบบไม่พร้อมกัน และไม่สามารถแก้ไขหรือยกเลิกคำขอได้
onResponseStarted
ทริกเกอร์เมื่อได้รับไบต์แรกของเนื้อหาการตอบกลับ สำหรับคำขอ HTTP หมายความว่าบรรทัดสถานะและส่วนหัวการตอบกลับพร้อมใช้งาน เหตุการณ์นี้เป็นเหตุการณ์ให้ข้อมูลและจัดการ แบบไม่พร้อมกัน โดยจะไม่อนุญาตให้แก้ไขหรือยกเลิกคำขอ
onCompleted
ทริกเกอร์เมื่อประมวลผลคำขอสำเร็จ
onErrorOccurred
ทริกเกอร์เมื่อประมวลผลคำขอไม่สำเร็จ

Web Request API รับประกันว่าสำหรับคำขอแต่ละรายการ ระบบจะทริกเกอร์ onCompleted หรือ onErrorOccurred เป็นเหตุการณ์สุดท้าย โดยมีข้อยกเว้น 1 ข้อคือ หากคำขอเปลี่ยนเส้นทางไปยัง URL data:// ระบบจะรายงาน onBeforeRedirect เป็นเหตุการณ์สุดท้าย

* โปรดทราบว่า API คำขอเว็บจะแสดงการแยกข้อมูลของสแต็กเครือข่ายไปยังส่วนขยาย ภายใน ระบบจะแบ่งคำขอ URL หนึ่งรายการออกเป็นคำขอ HTTP หลายรายการ (เช่น เพื่อดึงช่วงไบต์แต่ละช่วงจากไฟล์ขนาดใหญ่) หรือจะจัดการโดยสแต็กเครือข่ายโดยไม่ต้องสื่อสารกับเครือข่ายก็ได้ ด้วยเหตุนี้ API จึงไม่ได้ระบุส่วนหัว HTTP สุดท้ายที่ส่งไปยังเครือข่าย เช่น ส่วนหัวทั้งหมดที่เกี่ยวข้องกับการแคชจะมองไม่เห็นในส่วนขยาย

ปัจจุบันระบบไม่ได้ระบุส่วนหัวต่อไปนี้ให้กับเหตุการณ์ onBeforeSendHeaders รายการนี้ ไม่รับประกันว่าจะสมบูรณ์หรือเสถียร

  • การให้สิทธิ์
  • Cache-Control
  • การเชื่อมต่อ
  • Content-Length
  • โฮสต์
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Partial-Data
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

ตั้งแต่ Chrome 79 เป็นต้นไป การแก้ไขส่วนหัวของคำขอจะส่งผลต่อการตรวจสอบการแชร์ทรัพยากรข้ามโดเมน (CORS) หากส่วนหัวที่แก้ไขสำหรับคำขอแบบข้ามโดเมนไม่เป็นไปตามเกณฑ์ ระบบจะ ส่งการตรวจสอบล่วงหน้าของ CORS เพื่อถามเซิร์ฟเวอร์ว่ายอมรับส่วนหัวดังกล่าวได้หรือไม่ หากต้องการแก้ไขส่วนหัวในลักษณะที่ละเมิดโปรโตคอล CORS คุณต้องระบุ 'extraHeaders' ใน opt_extraInfoSpec ในทางกลับกัน การแก้ไขส่วนหัวการตอบกลับใช้ไม่ได้ในการหลอกการตรวจสอบ CORS หากต้องการหลอกโปรโตคอล CORS คุณต้องระบุ 'extraHeaders' สำหรับ การแก้ไขการตอบกลับด้วย

ตั้งแต่ Chrome 79 เป็นต้นไป API webRequest จะไม่สกัดกั้นคำขอและ การตอบกลับของ CORS Preflight โดยค่าเริ่มต้น ส่วนขยายจะเห็นการตรวจสอบล่วงหน้าของ CORS สำหรับ URL ของคำขอ หากมี เครื่องรับที่มี 'extraHeaders' ระบุไว้ใน opt_extraInfoSpec สำหรับ URL ของคำขอ onBeforeRequest ยังสามารถ'extraHeaders'จาก Chrome 79 ได้ด้วย

ตั้งแต่ Chrome 79 เป็นต้นไป ระบบจะไม่ระบุส่วนหัวของคำขอต่อไปนี้ และจะแก้ไขหรือ นำออกไม่ได้หากไม่ได้ระบุ 'extraHeaders' ใน opt_extraInfoSpec

  • Origin

ตั้งแต่ Chrome 72 เป็นต้นไป หากต้องการแก้ไขการตอบกลับก่อนที่ Cross Origin Read Blocking (CORB) จะบล็อกการตอบกลับ คุณจะต้องระบุ 'extraHeaders' ใน opt_extraInfoSpec

ตั้งแต่ Chrome 72 เป็นต้นไป ระบบจะไม่ระบุส่วนหัวของคำขอต่อไปนี้ และจะแก้ไข หรือนำออกไม่ได้หากไม่ได้ระบุ 'extraHeaders' ใน opt_extraInfoSpec

  • Accept-Language
  • Accept-Encoding
  • ผู้อ้างอิง
  • คุกกี้

ตั้งแต่ Chrome 72 เป็นต้นไป ระบบจะไม่ระบุส่วนหัวการตอบกลับ Set-Cookie และจะแก้ไข หรือนำออกไม่ได้หากไม่ได้ระบุ 'extraHeaders' ใน opt_extraInfoSpec

ตั้งแต่ Chrome 89 เป็นต้นไป คุณจะแก้ไขหรือนำส่วนหัวการตอบกลับ X-Frame-Options ออกอย่างมีประสิทธิภาพไม่ได้ หากไม่ได้ระบุ 'extraHeaders' ใน opt_extraInfoSpec

API ของ webRequest จะแสดงเฉพาะคำขอที่ส่วนขยายมีสิทธิ์ดูตามสิทธิ์ ของโฮสต์ นอกจากนี้ คุณจะเข้าถึงได้เฉพาะสคีมต่อไปนี้ http://, https://, ftp://, file://, ws:// (ตั้งแต่ Chrome 58), wss:// (ตั้งแต่ Chrome 58), urn: (ตั้งแต่ Chrome 91) หรือ chrome-extension:// นอกจากนี้ แม้แต่คำขอบางรายการที่มี URL ที่ใช้รูปแบบใดรูปแบบหนึ่งข้างต้น ก็จะถูกซ่อนไว้ ซึ่งรวมถึง chrome-extension://other_extension_id ที่ other_extension_id ไม่ใช่ รหัสของส่วนขยายที่จะจัดการคำขอ https://www.google.com/chrome และคำขออื่นๆ ที่มีความละเอียดอ่อน ซึ่งเป็นส่วนสำคัญของฟังก์ชันการทำงานของเบราว์เซอร์ นอกจากนี้ XMLHttpRequests แบบซิงโครนัสจากส่วนขยายจะ ซ่อนจากตัวแฮนเดิลเหตุการณ์ที่บล็อกเพื่อป้องกันการหยุดชะงัก โปรดทราบว่าสำหรับบาง รูปแบบที่รองรับ ชุดเหตุการณ์ที่พร้อมใช้งานอาจถูกจำกัดเนื่องจากลักษณะของ โปรโตคอลที่เกี่ยวข้อง ตัวอย่างเช่น สำหรับไฟล์: scheme จะส่งได้เฉพาะ onBeforeRequest, onResponseStarted, onCompleted และ onErrorOccurred

ตั้งแต่ Chrome 58 เป็นต้นไป API webRequest จะรองรับการสกัดกั้นคำขอแฮนด์เชค WebSocket เนื่องจากแฮนด์เชคดำเนินการผ่านคำขออัปเกรด HTTP โฟลว์จึงเหมาะกับโมเดล webRequest ที่มุ่งเน้น HTTP โปรดทราบว่า API จะไม่สกัดกั้นรายการต่อไปนี้

  • ข้อความแต่ละรายการที่ส่งผ่านการเชื่อมต่อ WebSocket ที่สร้างขึ้น
  • WebSocket กำลังปิดการเชื่อมต่อ

คำขอ WebSocket ไม่รองรับการเปลี่ยนเส้นทาง

ตั้งแต่ Chrome 72 เป็นต้นไป ส่วนขยายจะสกัดกั้นคำขอได้ก็ต่อเมื่อมีสิทธิ์เข้าถึงโฮสต์ ทั้ง URL ที่ขอและผู้เริ่มคำขอ

ตั้งแต่ Chrome 96 เป็นต้นไป API ของ webRequest จะรองรับการสกัดกั้นคำขอแฮนด์เชค WebTransport ผ่าน HTTP/3 เนื่องจากการแฮนด์เชคดำเนินการผ่านคำขอ HTTP CONNECT โฟลว์จึงเหมาะกับโมเดล webRequest ที่มุ่งเน้น HTTP ข้อควรทราบ

  • เมื่อสร้างเซสชันแล้ว ส่วนขยายจะไม่สามารถสังเกตหรือแทรกแซงเซสชันผ่าน webRequest API ได้
  • ระบบจะไม่สนใจการแก้ไขส่วนหัวของคำขอ HTTP ใน onBeforeSendHeaders
  • WebTransport ผ่าน HTTP/3 ไม่รองรับการเปลี่ยนเส้นทางและการตรวจสอบสิทธิ์

รหัสคำขอ

คำขอแต่ละรายการจะระบุด้วยรหัสคำขอ รหัสนี้จะไม่ซ้ำกันภายในเซสชันเบราว์เซอร์และบริบทของส่วนขยาย โดยจะคงที่ตลอดวงจรของคำขอและใช้เพื่อจับคู่เหตุการณ์สำหรับคำขอเดียวกันได้ โปรดทราบว่าคำขอ HTTP หลายรายการจะได้รับการแมปกับคำขอเว็บ 1 รายการ ในกรณีของการเปลี่ยนเส้นทาง HTTP หรือการตรวจสอบสิทธิ์ HTTP

การลงทะเบียน Listener เหตุการณ์

หากต้องการลงทะเบียนเครื่องมือฟังเหตุการณ์สำหรับคำขอเว็บ คุณต้องใช้รูปแบบของฟังก์ชันaddListener()ปกติ นอกเหนือจากการระบุฟังก์ชันเรียกกลับแล้ว คุณยังต้องระบุอาร์กิวเมนต์ตัวกรอง และอาจระบุอาร์กิวเมนต์ข้อมูลเพิ่มเติมที่ไม่บังคับได้ด้วย

อาร์กิวเมนต์ 3 รายการของ addListener() ใน API คำขอเว็บมีคำจำกัดความดังนี้

var callback = function(details) {...}; var filter = {...}; var opt_extraInfoSpec = [...]; 

ตัวอย่างการรอรับเหตุการณ์ onBeforeRequest มีดังนี้

chrome.webRequest.onBeforeRequest.addListener(     callback, filter, opt_extraInfoSpec); 

การเรียกใช้ addListener() แต่ละครั้งจะใช้ฟังก์ชัน Callback ที่จำเป็นเป็นพารามิเตอร์แรก ฟังก์ชัน การเรียกกลับนี้จะส่งพจนานุกรมที่มีข้อมูลเกี่ยวกับคำขอ URL ปัจจุบัน ข้อมูลในพจนานุกรมนี้ขึ้นอยู่กับประเภทเหตุการณ์ที่เฉพาะเจาะจง รวมถึงเนื้อหาของ opt_extraInfoSpec

หากอาร์เรย์ opt_extraInfoSpec ที่ไม่บังคับมีสตริง 'blocking' (อนุญาตเฉพาะสำหรับ เหตุการณ์ที่เฉพาะเจาะจง) ฟังก์ชันเรียกกลับจะได้รับการจัดการแบบซิงโครนัส ซึ่งหมายความว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล ในกรณีนี้ การเรียกกลับจะแสดงผล webRequest.BlockingResponse ที่กำหนดวงจรเพิ่มเติมของคำขอ การตอบกลับนี้ช่วยให้ยกเลิกหรือเปลี่ยนเส้นทางคำขอ (onBeforeRequest) ยกเลิกคำขอหรือแก้ไขส่วนหัว (onBeforeSendHeaders, onHeadersReceived) และยกเลิกคำขอหรือระบุข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์ (onAuthRequired) ได้ ทั้งนี้ขึ้นอยู่กับบริบท

หากอาร์เรย์ opt_extraInfoSpec ที่ไม่บังคับมีสตริง 'asyncBlocking' แทน (อนุญาตเฉพาะสำหรับ onAuthRequired) ส่วนขยายจะสร้าง webRequest.BlockingResponse แบบไม่พร้อมกันได้

webRequest.RequestFilter filter ช่วยจำกัดคำขอสำหรับเหตุการณ์ที่ทริกเกอร์ในมิติข้อมูลต่างๆ ดังนี้

URL
รูปแบบ URL เช่น *://www.google.com/foo*bar
ประเภท
ประเภทคำขอ เช่น main_frame (เอกสารที่โหลดสำหรับเฟรมระดับบนสุด), sub_frame (เอกสารที่โหลดสำหรับเฟรมที่ฝังอยู่) และ image (รูปภาพในเว็บไซต์) ดูwebRequest.RequestFilter
รหัสแท็บ
ตัวระบุสำหรับแท็บเดียว
รหัสหน้าต่าง
ตัวระบุสำหรับหน้าต่าง

คุณระบุสตริงใน opt_extraInfoSpec เพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับคำขอได้ ทั้งนี้ขึ้นอยู่กับประเภทเหตุการณ์ ใช้เพื่อระบุข้อมูลโดยละเอียดเกี่ยวกับข้อมูลของคำขอเท่านั้น หากมีการขออย่างชัดแจ้ง

การจัดการการตรวจสอบสิทธิ์

หากต้องการจัดการคำขอการตรวจสอบสิทธิ์ HTTP ให้เพิ่มสิทธิ์ "webRequestAuthProvider" ลงในไฟล์ Manifest

{   "permissions": [     "webRequest",     "webRequestAuthProvider"   ] } 

โปรดทราบว่าส่วนขยายที่ติดตั้งตามนโยบายซึ่งมีสิทธิ์ "webRequestBlocking" ไม่จำเป็นต้องมีสิทธิ์นี้

หากต้องการระบุข้อมูลเข้าสู่ระบบแบบพร้อมกัน ให้ทำดังนี้

chrome.webRequest.onAuthRequired.addListener((details) => {     return {       authCredentials: {         username: 'guest',         password: 'guest'       }     };   },   { urls: ['https://httpbin.org/basic-auth/guest/guest'] },   ['blocking'] ); 

วิธีระบุข้อมูลเข้าสู่ระบบแบบอะซิงโครนัส

chrome.webRequest.onAuthRequired.addListener((details, callback) => {     callback({       authCredentials: {         username: 'guest',         password: 'guest'       }     });   },   { urls: ['https://httpbin.org/basic-auth/guest/guest'] },   ['asyncBlocking'] ); 

รายละเอียดการติดตั้งใช้งาน

รายละเอียดการติดตั้งใช้งานหลายอย่างอาจมีความสำคัญที่ควรทราบเมื่อพัฒนาส่วนขยายที่ใช้ Web Request API

web_accessible_resources

เมื่อส่วนขยายใช้ WebRequest API เพื่อเปลี่ยนเส้นทางคำขอทรัพยากรสาธารณะไปยังทรัพยากรที่เข้าถึงผ่านเว็บไม่ได้ ระบบจะบล็อกส่วนขยายดังกล่าวและทำให้เกิดข้อผิดพลาด ข้อความข้างต้นยังคงเป็นจริงแม้ว่าส่วนขยายที่เปลี่ยนเส้นทางจะเป็นเจ้าของทรัพยากรที่เข้าถึงเว็บไม่ได้ก็ตาม หากต้องการประกาศทรัพยากรเพื่อใช้กับ declarativeWebRequest API คุณต้องประกาศและป้อนข้อมูลอาร์เรย์ "web_accessible_resources" ในไฟล์ Manifest ตามที่ระบุไว้ที่นี่

การแก้ไขข้อขัดแย้ง

ในการใช้งาน API คำขอเว็บปัจจุบัน ระบบจะถือว่าคำขอถูกยกเลิกหากมีส่วนขยายอย่างน้อย 1 รายการสั่งให้ยกเลิกคำขอ หากส่วนขยายยกเลิกคำขอ ระบบจะแจ้งให้ส่วนขยายทั้งหมดทราบโดยใช้เหตุการณ์ onErrorOccurred ส่วนขยายจะเปลี่ยนเส้นทางคำขอหรือแก้ไขส่วนหัวได้ครั้งละ 1 รายการเท่านั้น หากมีส่วนขยายมากกว่า 1 รายการพยายามแก้ไขคำขอ ส่วนขยายที่ติดตั้งล่าสุดจะเป็นผู้ชนะ และระบบจะละเว้นส่วนขยายอื่นๆ ทั้งหมด ระบบจะไม่แจ้งเตือนส่วนขยายหาก ไม่สนใจคำสั่งให้แก้ไขหรือเปลี่ยนเส้นทาง

การแคช

Chrome ใช้แคช 2 ประเภท ได้แก่ แคชในดิสก์และแคชในหน่วยความจำที่รวดเร็วมาก อายุการใช้งานของแคชในหน่วยความจำจะเชื่อมโยงกับอายุการใช้งานของกระบวนการแสดงผล ซึ่งสอดคล้องกับแท็บโดยประมาณ คำขอที่ได้รับคำตอบจากแคชในหน่วยความจำจะไม่ปรากฏใน Web Request API หากตัวแฮนเดิลคำขอเปลี่ยนลักษณะการทำงาน (เช่น ลักษณะการทำงานที่บล็อกคำขอ) การรีเฟรชหน้าเว็บอย่างง่ายอาจไม่เป็นไปตามลักษณะการทำงานที่เปลี่ยนแปลงนี้ หากต้องการให้การเปลี่ยนแปลงลักษณะการทำงานมีผล ให้โทรหา handlerBehaviorChanged() เพื่อล้างแคชในหน่วยความจำ แต่ไม่ควรทำบ่อยๆ เนื่องจากการล้างแคชเป็นกระบวนการที่ใช้ทรัพยากรมาก คุณไม่จำเป็นต้องเรียกใช้ handlerBehaviorChanged() หลังจากลงทะเบียนหรือยกเลิกการลงทะเบียน Listener ของเหตุการณ์

การประทับเวลา

เรารับประกันว่าพร็อพเพอร์ตี้ timestamp ของเหตุการณ์คำขอเว็บจะสอดคล้องกันภายในเท่านั้น การเปรียบเทียบเหตุการณ์หนึ่งกับอีกเหตุการณ์หนึ่งจะทําให้คุณเห็นออฟเซ็ตที่ถูกต้องระหว่างเหตุการณ์เหล่านั้น แต่การเปรียบเทียบ เหตุการณ์เหล่านั้นกับเวลาปัจจุบันภายในส่วนขยาย (เช่น ผ่าน (new Date()).getTime()) อาจ ทําให้ได้ผลลัพธ์ที่ไม่คาดคิด

การจัดการข้อผิดพลาด

หากคุณพยายามลงทะเบียนเหตุการณ์ที่มีอาร์กิวเมนต์ที่ไม่ถูกต้อง ระบบจะแสดงข้อผิดพลาด JavaScript และ จะไม่ลงทะเบียนตัวแฮนเดิลเหตุการณ์ หากเกิดข้อผิดพลาดขณะจัดการเหตุการณ์ หรือหากตัวแฮนเดิลเหตุการณ์แสดงผลการตอบกลับการบล็อกที่ไม่ถูกต้อง ระบบจะบันทึกข้อความแสดงข้อผิดพลาดลงในคอนโซลของส่วนขยาย และจะละเว้นตัวแฮนเดิลสำหรับคำขอนั้น

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีบล็อกคำขอทั้งหมดไปยัง www.evil.com

chrome.webRequest.onBeforeRequest.addListener(   function(details) {     return {cancel: details.url.indexOf("://www.evil.com/") != -1};   },   {urls: ["<all_urls>"]},   ["blocking"] ); 

เนื่องจากฟังก์ชันนี้ใช้ตัวแฮนเดิลเหตุการณ์ที่บล็อก จึงต้องมีสิทธิ์ "webRequest" รวมถึงสิทธิ์ "webRequestBlocking" ในไฟล์ Manifest

ตัวอย่างต่อไปนี้บรรลุเป้าหมายเดียวกันในวิธีที่มีประสิทธิภาพมากขึ้น เนื่องจากไม่จำเป็นต้องส่งคำขอที่ไม่ได้กำหนดเป้าหมายไปยัง www.evil.com ไปยังส่วนขยาย

chrome.webRequest.onBeforeRequest.addListener(   function(details) { return {cancel: true}; },   {urls: ["*://www.evil.com/*"]},   ["blocking"] ); 

ตัวอย่างต่อไปนี้แสดงวิธีลบส่วนหัว User-Agent ออกจากคำขอทั้งหมด

chrome.webRequest.onBeforeSendHeaders.addListener(   function(details) {     for (var i = 0; i < details.requestHeaders.length; ++i) {       if (details.requestHeaders[i].name === 'User-Agent') {         details.requestHeaders.splice(i, 1);         break;       }     }     return {requestHeaders: details.requestHeaders};   },   {urls: ["<all_urls>"]},   ["blocking", "requestHeaders"] ); 

หากต้องการลองใช้ chrome.webRequest API ให้ติดตั้งตัวอย่าง webRequest จากที่เก็บchrome-extension-samples

ประเภท

BlockingResponse

แสดงค่าสําหรับตัวแฮนเดิลเหตุการณ์ที่มีการใช้ extraInfoSpec 'blocking' อนุญาตให้ตัวแฮนเดิลเหตุการณ์แก้ไขคำขอของเครือข่าย

พร็อพเพอร์ตี้

  • authCredentials

    object ไม่บังคับ

    ใช้เป็นคำตอบสำหรับเหตุการณ์ onAuthRequired เท่านั้น หากตั้งค่าไว้ ระบบจะส่งคำขอโดยใช้ข้อมูลเข้าสู่ระบบที่ระบุ

    • รหัสผ่าน

      สตริง

    • ชื่อผู้ใช้

      สตริง

  • ยกเลิก

    บูลีน ไม่บังคับ

    หากเป็นจริง ระบบจะยกเลิกคำขอ ซึ่งจะป้องกันไม่ให้มีการส่งคำขอ ซึ่งใช้เป็นการตอบกลับเหตุการณ์ onBeforeRequest, onBeforeSendHeaders, onHeadersReceived และ onAuthRequired ได้

  • redirectUrl

    สตริง ไม่บังคับ

    ใช้เป็นคำตอบสำหรับเหตุการณ์ onBeforeRequest และ onHeadersReceived เท่านั้น หากตั้งค่าไว้ ระบบจะป้องกันไม่ให้ส่ง/ดำเนินการคำขอเดิมให้เสร็จสมบูรณ์ และจะเปลี่ยนเส้นทางไปยัง URL ที่ระบุแทน อนุญาตการเปลี่ยนเส้นทางไปยังรูปแบบที่ไม่ใช่ HTTP เช่น data: การเปลี่ยนเส้นทางที่เริ่มต้นโดยการดำเนินการเปลี่ยนเส้นทางจะใช้วิธีการคำขอเดิมสำหรับการเปลี่ยนเส้นทาง โดยมีข้อยกเว้น 1 ข้อคือ หากการเปลี่ยนเส้นทางเริ่มต้นในขั้นตอน onHeadersReceived ระบบจะออกการเปลี่ยนเส้นทางโดยใช้เมธอด GET ระบบจะไม่สนใจการเปลี่ยนเส้นทางจาก URL ที่มีรูปแบบ ws:// และ wss://

  • requestHeaders

    HttpHeaders ไม่บังคับ

    ใช้เป็นคำตอบสำหรับเหตุการณ์ onBeforeSendHeaders เท่านั้น หากตั้งค่าไว้ ระบบจะส่งคำขอพร้อมส่วนหัวของคำขอเหล่านี้แทน

  • responseHeaders

    HttpHeaders ไม่บังคับ

    ใช้เป็นคำตอบสำหรับเหตุการณ์ onHeadersReceived เท่านั้น หากตั้งค่าไว้ ระบบจะถือว่าเซิร์ฟเวอร์ตอบกลับด้วยส่วนหัวของการตอบกลับเหล่านี้แทน ให้ส่งคืน responseHeaders ก็ต่อเมื่อคุณต้องการแก้ไขส่วนหัวจริงๆ เพื่อจำกัดจำนวนข้อขัดแย้ง (ส่วนขยายเพียงรายการเดียวเท่านั้นที่แก้ไข responseHeaders ได้สำหรับแต่ละคำขอ)

FormDataItem

Chrome 66 ขึ้นไป

มีข้อมูลที่ส่งภายในข้อมูลแบบฟอร์ม สำหรับแบบฟอร์มที่เข้ารหัส URL ระบบจะจัดเก็บเป็นสตริงหากข้อมูลเป็นสตริง UTF-8 และเป็น ArrayBuffer ในกรณีอื่นๆ สำหรับ form-data จะเป็น ArrayBuffer หาก form-data แสดงถึงการอัปโหลดไฟล์ จะเป็นสตริงที่มีชื่อไฟล์ หากมีการระบุชื่อไฟล์

ค่าแจกแจง

ArrayBuffer

สตริง

HttpHeaders

อาร์เรย์ของส่วนหัว HTTP โดยแต่ละส่วนหัวจะแสดงเป็นพจนานุกรมที่มีคีย์ name และ value หรือ binaryValue

ประเภท

object[]

พร็อพเพอร์ตี้

  • binaryValue

    number[] ไม่บังคับ

    ค่าของส่วนหัว HTTP หากแสดงด้วย UTF-8 ไม่ได้ โดยจะจัดเก็บเป็นค่าไบต์แต่ละค่า (0..255)

  • ชื่อ

    สตริง

    ชื่อของส่วนหัว HTTP

  • value

    สตริง ไม่บังคับ

    ค่าของส่วนหัว HTTP หากแสดงด้วย UTF-8 ได้

IgnoredActionType

Chrome 70 ขึ้นไป

ค่าแจกแจง

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์

"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล

"asyncBlocking"
ระบุว่าฟังก์ชันเรียกกลับได้รับการจัดการแบบไม่พร้อมกัน

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnBeforeRedirectOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnBeforeRequestOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล

"requestBody"
ระบุว่าควรใส่เนื้อหาของคำขอไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnBeforeSendHeadersOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"requestHeaders"
ระบุว่าควรใส่ส่วนหัวของคำขอไว้ในเหตุการณ์

"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnCompletedOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnErrorOccurredOptions

Chrome 79 ขึ้นไป

ค่า

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล

"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnResponseStartedOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

OnSendHeadersOptions

Chrome 44 ขึ้นไป

ค่าแจกแจง

"requestHeaders"
ระบุว่าควรใส่ส่วนหัวของคำขอไว้ในเหตุการณ์

"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้

RequestFilter

ออบเจ็กต์ที่อธิบายตัวกรองที่จะใช้กับเหตุการณ์ webRequest

พร็อพเพอร์ตี้

  • tabId

    หมายเลข ไม่บังคับ

  • ประเภท

    ResourceType[] ไม่บังคับ

    รายการประเภทคำขอ ระบบจะกรองคำขอที่ไม่ตรงกับประเภทใดๆ ออก

  • URL

    string[]

    รายการ URL หรือรูปแบบ URL ระบบจะกรองคำขอที่ไม่ตรงกับ URL ใดๆ ออก

  • windowId

    หมายเลข ไม่บังคับ

ResourceType

Chrome 44 ขึ้นไป

ค่าแจกแจง

"main_frame"
ระบุทรัพยากรเป็นเฟรมหลัก

"sub_frame"
ระบุทรัพยากรเป็นเฟรมย่อย

"stylesheet"
ระบุทรัพยากรเป็นสไตล์ชีต

"script"
ระบุทรัพยากรเป็นสคริปต์

"image"
ระบุทรัพยากรเป็นรูปภาพ

"font"
ระบุทรัพยากรเป็นแบบอักษร

"object"
ระบุทรัพยากรเป็นออบเจ็กต์

"xmlhttprequest"
ระบุทรัพยากรเป็น XMLHttpRequest

"ping"
ระบุทรัพยากรเป็น ping

"csp_report"
ระบุทรัพยากรเป็นรายงานนโยบายรักษาความปลอดภัยเนื้อหา (CSP)

"media"
ระบุทรัพยากรเป็นออบเจ็กต์สื่อ

"websocket"
ระบุทรัพยากรเป็น WebSocket

"webbundle"
ระบุทรัพยากรเป็น WebBundle

"other"
ระบุทรัพยากรเป็นประเภทที่ไม่ได้รวมอยู่ในประเภทที่ระบุไว้

UploadData

มีข้อมูลที่อัปโหลดในคำขอ URL

พร็อพเพอร์ตี้

  • ไบต์

    ไม่บังคับ

    ArrayBuffer ที่มีสำเนาของข้อมูล

  • ไฟล์

    สตริง ไม่บังคับ

    สตริงที่มีเส้นทางและชื่อของไฟล์

พร็อพเพอร์ตี้

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

จำนวนครั้งสูงสุดที่เรียกใช้ handlerBehaviorChanged ได้ต่อช่วงเวลาต่อเนื่อง 10 นาที handlerBehaviorChanged เป็นการเรียกใช้ฟังก์ชันที่มีค่าใช้จ่ายสูงซึ่งไม่ควรเรียกใช้บ่อยๆ

ค่า

20

เมธอด

handlerBehaviorChanged()

chrome.webRequest.handlerBehaviorChanged(): Promise<void>

ต้องเรียกใช้เมื่อลักษณะการทำงานของตัวแฮนเดิล webRequest เปลี่ยนไปเพื่อป้องกันการจัดการที่ไม่ถูกต้องเนื่องจากการแคช การเรียกใช้ฟังก์ชันนี้มีค่าใช้จ่ายสูง อย่าโทรหาบ่อย

การคืนสินค้า

  • Promise<void>

    Chrome 116 ขึ้นไป

กิจกรรม

onActionIgnored

Chrome 70 ขึ้นไป
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

ทริกเกอร์เมื่อระบบไม่สนใจการแก้ไขที่ส่วนขยายเสนอสำหรับคำขอเครือข่าย กรณีนี้จะเกิดขึ้นในกรณีที่เกิดความขัดแย้งกับส่วนขยายอื่นๆ

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • การดำเนินการ

        การดำเนินการที่เสนอซึ่งถูกละเว้น

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

ทริกเกอร์เมื่อได้รับการตรวจสอบสิทธิ์ล้มเหลว โดยผู้ฟังจะมี 3 ตัวเลือก ได้แก่ ระบุข้อมูลเข้าสู่ระบบเพื่อการตรวจสอบสิทธิ์ ยกเลิกคำขอและแสดงหน้าข้อผิดพลาด หรือไม่ดำเนินการใดๆ กับการท้าทาย หากมีการระบุข้อมูลเข้าสู่ระบบของผู้ใช้ที่ไม่ถูกต้อง ระบบอาจเรียกใช้ฟังก์ชันนี้หลายครั้งสำหรับคำขอเดียวกัน โปรดทราบว่าต้องระบุโหมด 'blocking' หรือ 'asyncBlocking' เพียงโหมดเดียวในพารามิเตอร์ extraInfoSpec

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • รายละเอียด

      ออบเจ็กต์

      • ผู้ท้าชิง

        ออบเจ็กต์

        เซิร์ฟเวอร์ที่ขอการตรวจสอบสิทธิ์

        • ผู้จัด

          สตริง

        • พอร์ต

          ตัวเลข

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • isProxy

        บูลีน

        จริงสำหรับ Proxy-Authenticate, เท็จสำหรับ WWW-Authenticate

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • ขอบเขต

        สตริง ไม่บังคับ

        ขอบเขตการตรวจสอบสิทธิ์ที่เซิร์ฟเวอร์ระบุ หากมี

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • responseHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวการตอบกลับ HTTP ที่ได้รับพร้อมกับการตอบกลับนี้

      • สคีม

        สตริง

        รูปแบบการตรวจสอบสิทธิ์ เช่น Basic หรือ Digest

      • statusCode

        ตัวเลข

        Chrome 43 ขึ้นไป

        รหัสสถานะ HTTP มาตรฐานที่เซิร์ฟเวอร์แสดง

      • statusLine

        สตริง

        บรรทัดสถานะ HTTP ของการตอบกลับหรือสตริง "HTTP/0.9 200 OK" สำหรับการตอบกลับ HTTP/0.9 (เช่น การตอบกลับที่ไม่มีบรรทัดสถานะ) หรือสตริงว่างหากไม่มีส่วนหัว

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

    • asyncCallback

      ฟังก์ชัน ไม่บังคับ

      Chrome 58 ขึ้นไป

      พารามิเตอร์ asyncCallback มีลักษณะดังนี้

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | ไม่ระบุ

      หากระบุ "blocking" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้

  • ตัวกรอง
  • extraInfoSpec

    OnAuthRequiredOptions[] ไม่บังคับ

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

เริ่มทำงานเมื่อกำลังจะเกิดการเปลี่ยนเส้นทางที่เซิร์ฟเวอร์เริ่มต้น

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • fromCache

        บูลีน

        ระบุว่าดึงข้อมูลการตอบกลับนี้จากแคชในดิสก์หรือไม่

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • ip

        สตริง ไม่บังคับ

        ที่อยู่ IP ของเซิร์ฟเวอร์ที่ส่งคำขอไปจริง โปรดทราบว่าอาจเป็นที่อยู่ IPv6 ที่แท้จริง

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • redirectUrl

        สตริง

        URL ใหม่

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • responseHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวการตอบกลับ HTTP ที่ได้รับพร้อมกับการเปลี่ยนเส้นทางนี้

      • statusCode

        ตัวเลข

        รหัสสถานะ HTTP มาตรฐานที่เซิร์ฟเวอร์แสดง

      • statusLine

        สตริง

        บรรทัดสถานะ HTTP ของการตอบกลับหรือสตริง "HTTP/0.9 200 OK" สำหรับการตอบกลับ HTTP/0.9 (เช่น การตอบกลับที่ไม่มีบรรทัดสถานะ) หรือสตริงว่างหากไม่มีส่วนหัว

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

  • ตัวกรอง
  • extraInfoSpec

    OnBeforeRedirectOptions[] ไม่บังคับ

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

เริ่มทำงานเมื่อกำลังจะเกิดคำขอ

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => BlockingResponse | undefined

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • documentLifecycle

        extensionTypes.DocumentLifecycle ไม่บังคับ

        Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • frameType

        extensionTypes.FrameType ไม่บังคับ

        Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestBody

        object ไม่บังคับ

        มีข้อมูลเนื้อหาของคำขอ HTTP ระบุเฉพาะในกรณีที่ extraInfoSpec มี "requestBody"

        • ข้อผิดพลาด

          สตริง ไม่บังคับ

          ข้อผิดพลาดเมื่อรับข้อมูลเนื้อหาคำขอ

        • formData

          object ไม่บังคับ

          หากเมธอดคำขอคือ POST และเนื้อหาเป็นลำดับของคู่คีย์-ค่าที่เข้ารหัสใน UTF8 ซึ่งเข้ารหัสเป็น multipart/form-data หรือ application/x-www-form-urlencoded พจนานุกรมนี้จะปรากฏขึ้นและสำหรับแต่ละคีย์จะมีรายการค่าทั้งหมดสำหรับคีย์นั้น หากข้อมูลเป็นสื่อประเภทอื่นหรือมีรูปแบบไม่ถูกต้อง จะไม่มีพจนานุกรม ค่าตัวอย่างของพจนานุกรมนี้คือ {'key': ['value1', 'value2']}

        • ดิบ

          UploadData[] ไม่บังคับ

          หากเมธอดคำขอคือ PUT หรือ POST และยังไม่ได้แยกวิเคราะห์เนื้อหาใน formData องค์ประกอบเนื้อหาของคำขอที่ยังไม่ได้แยกวิเคราะห์จะอยู่ในอาร์เรย์นี้

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

    • returns

      BlockingResponse | ไม่ระบุ

      หากระบุ "blocking" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้

  • ตัวกรอง
  • extraInfoSpec

    OnBeforeRequestOptions[] ไม่บังคับ

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

ทริกเกอร์ก่อนส่งคำขอ HTTP เมื่อส่วนหัวของคำขอพร้อมใช้งาน ปัญหานี้อาจเกิดขึ้นหลังจากสร้างการเชื่อมต่อ TCP กับเซิร์ฟเวอร์แล้ว แต่ก่อนที่จะส่งข้อมูล HTTP

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => BlockingResponse | undefined

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวของคำขอ HTTP ที่จะส่งออกพร้อมกับคำขอนี้

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

    • returns

      BlockingResponse | ไม่ระบุ

      หากระบุ "blocking" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้

  • ตัวกรอง
  • extraInfoSpec

    OnBeforeSendHeadersOptions[] ไม่บังคับ

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

เริ่มทำงานเมื่อคำขอเสร็จสมบูรณ์

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • fromCache

        บูลีน

        ระบุว่าดึงข้อมูลการตอบกลับนี้จากแคชในดิสก์หรือไม่

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • ip

        สตริง ไม่บังคับ

        ที่อยู่ IP ของเซิร์ฟเวอร์ที่ส่งคำขอไปจริง โปรดทราบว่าอาจเป็นที่อยู่ IPv6 ที่แท้จริง

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • responseHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวการตอบกลับ HTTP ที่ได้รับพร้อมกับการตอบกลับนี้

      • statusCode

        ตัวเลข

        รหัสสถานะ HTTP มาตรฐานที่เซิร์ฟเวอร์แสดง

      • statusLine

        สตริง

        บรรทัดสถานะ HTTP ของการตอบกลับหรือสตริง "HTTP/0.9 200 OK" สำหรับการตอบกลับ HTTP/0.9 (เช่น การตอบกลับที่ไม่มีบรรทัดสถานะ) หรือสตริงว่างหากไม่มีส่วนหัว

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

  • ตัวกรอง
  • extraInfoSpec

    OnCompletedOptions[] ไม่บังคับ

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

เริ่มทำงานเมื่อเกิดข้อผิดพลาด

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ ค่านี้จะไม่มีอยู่หากคำขอเป็นการไปยังส่วนต่างๆ ของเฟรม

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • ข้อผิดพลาด

        สตริง

        คำอธิบายข้อผิดพลาด เราไม่รับประกันว่าสตริงนี้จะยังคงเข้ากันได้แบบย้อนหลังระหว่างรุ่นต่างๆ คุณต้องไม่แยกวิเคราะห์และดำเนินการตามเนื้อหาของไฟล์

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • fromCache

        บูลีน

        ระบุว่าดึงข้อมูลการตอบกลับนี้จากแคชในดิสก์หรือไม่

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • ip

        สตริง ไม่บังคับ

        ที่อยู่ IP ของเซิร์ฟเวอร์ที่ส่งคำขอไปจริง โปรดทราบว่าอาจเป็นที่อยู่ IPv6 ที่แท้จริง

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

  • ตัวกรอง
  • extraInfoSpec

    OnErrorOccurredOptions[] ไม่บังคับ

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

ทริกเกอร์เมื่อได้รับส่วนหัวการตอบกลับ HTTP ของคำขอ

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => BlockingResponse | undefined

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • responseHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวการตอบกลับ HTTP ที่ได้รับพร้อมกับการตอบกลับนี้

      • statusCode

        ตัวเลข

        Chrome 43 ขึ้นไป

        รหัสสถานะ HTTP มาตรฐานที่เซิร์ฟเวอร์แสดง

      • statusLine

        สตริง

        บรรทัดสถานะ HTTP ของการตอบกลับหรือสตริง "HTTP/0.9 200 OK" สำหรับการตอบกลับ HTTP/0.9 (เช่น การตอบกลับที่ไม่มีบรรทัดสถานะ)

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

    • returns

      BlockingResponse | ไม่ระบุ

      หากระบุ "blocking" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้

  • ตัวกรอง
  • extraInfoSpec

    OnHeadersReceivedOptions[] ไม่บังคับ

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

เริ่มทำงานเมื่อได้รับไบต์แรกของเนื้อหาการตอบกลับ สำหรับคำขอ HTTP หมายความว่าบรรทัดสถานะและส่วนหัวการตอบกลับพร้อมใช้งาน

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • fromCache

        บูลีน

        ระบุว่าดึงข้อมูลการตอบกลับนี้จากแคชในดิสก์หรือไม่

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • ip

        สตริง ไม่บังคับ

        ที่อยู่ IP ของเซิร์ฟเวอร์ที่ส่งคำขอไปจริง โปรดทราบว่าอาจเป็นที่อยู่ IPv6 ที่แท้จริง

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • responseHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวการตอบกลับ HTTP ที่ได้รับพร้อมกับการตอบกลับนี้

      • statusCode

        ตัวเลข

        รหัสสถานะ HTTP มาตรฐานที่เซิร์ฟเวอร์แสดง

      • statusLine

        สตริง

        บรรทัดสถานะ HTTP ของการตอบกลับหรือสตริง "HTTP/0.9 200 OK" สำหรับการตอบกลับ HTTP/0.9 (เช่น การตอบกลับที่ไม่มีบรรทัดสถานะ) หรือสตริงว่างหากไม่มีส่วนหัว

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

  • ตัวกรอง
  • extraInfoSpec

    OnResponseStartedOptions[] ไม่บังคับ

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

ทริกเกอร์ก่อนที่จะส่งคำขอไปยังเซิร์ฟเวอร์ (การแก้ไขการเรียกกลับ onBeforeSendHeaders ก่อนหน้านี้จะมองเห็นได้เมื่อมีการทริกเกอร์ onSendHeaders)

พารามิเตอร์

  • callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details: object) => void

    • รายละเอียด

      ออบเจ็กต์

      • documentId

        สตริง

        Chrome 106 ขึ้นไป

        UUID ของเอกสารที่ส่งคำขอ

      • Chrome 106 ขึ้นไป

        วงจรของเอกสาร

      • frameId

        ตัวเลข

        ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (type เป็น main_frame หรือ sub_frame) frameId จะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ

      • Chrome 106 ขึ้นไป

        ประเภทเฟรมที่เกิดคำขอ

      • ผู้เริ่ม

        สตริง ไม่บังคับ

        Chrome 63 ขึ้นไป

        ต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"

      • method

        สตริง

        เมธอด HTTP มาตรฐาน

      • parentDocumentId

        สตริง ไม่บังคับ

        Chrome 106 ขึ้นไป

        UUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ไม่ได้ตั้งค่าหากไม่มีองค์กรหลัก

      • parentFrameId

        ตัวเลข

        รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก

      • requestHeaders

        HttpHeaders ไม่บังคับ

        ส่วนหัวของคำขอ HTTP ที่ส่งออกไปพร้อมกับคำขอนี้

      • requestId

        สตริง

        รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้

      • tabId

        ตัวเลข

        รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ

      • timeStamp

        ตัวเลข

        เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch

      • ประเภท

        วิธีใช้ทรัพยากรที่ขอ

      • URL

        สตริง

  • ตัวกรอง
  • extraInfoSpec

    OnSendHeadersOptions[] ไม่บังคับ