chrome.webRequest

คำอธิบาย

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

สิทธิ์

webRequest

ไฟล์ Manifest

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

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

ตั้งแต่ Chrome 108 เป็นต้นไป คุณจะระบุข้อมูลเข้าสู่ระบบแบบไม่พร้อมกันสำหรับเหตุการณ์ onAuthRequired ได้หากใช้สิทธิ์ "webRequest" และ "webRequestAuthProvider"

วงจรของคำขอ

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 ไม่รองรับการเปลี่ยนเส้นทางและการตรวจสอบสิทธิ์

แนวคิด

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

รหัสคำขอ

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

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

รายละเอียดการติดตั้งใช้งานหลายอย่างอาจมีความสำคัญที่ควรทราบเมื่อพัฒนาส่วนขยายที่ใช้ 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) ได้

"securityInfo"
ระบุว่าควรใส่ SecurityInfo ไว้ในเหตุการณ์

"securityInfoRawDer"
ระบุว่าควรใส่ SecurityInfo ที่มีไบต์ดิบของใบรับรองไว้ในเหตุการณ์

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"
ระบุทรัพยากรเป็นประเภทที่ไม่ได้รวมอยู่ในประเภทที่ระบุไว้

SecurityInfo

รอดำเนินการ

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

  • ใบรับรอง

    object[]

    รายการใบรับรอง

    • ลายนิ้วมือ

      ออบเจ็กต์

      ลายนิ้วมือของใบรับรอง

      • sha256

        สตริง

        ลายนิ้วมือ SHA256 ของใบรับรอง

    • rawDER

      ArrayBuffer ไม่บังคับ

      ไบต์ดิบของใบรับรองเซิร์ฟเวอร์ที่เข้ารหัส DER

  • รัฐ

    สตริง

    สถานะของการเชื่อมต่อ อย่างใดอย่างหนึ่งต่อไปนี้ secure, insecure, broken

UploadData

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

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

  • ไบต์

    ไม่บังคับ

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

  • ไฟล์

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

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

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

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

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

ค่า

20

เมธอด

handlerBehaviorChanged()

Promise
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)
: Promise<void>

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

พารามิเตอร์

  • callback

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

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

    () => void

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

  • Promise<void>

    Chrome 116 ขึ้นไป

    ระบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ

กิจกรรม

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 ที่ได้รับพร้อมกับการตอบกลับนี้

      • securityInfo

        SecurityInfo ไม่บังคับ

        รอดำเนินการ

        ข้อมูลเกี่ยวกับการเชื่อมต่อ TLS/QUIC ที่ใช้สำหรับการเชื่อมต่อพื้นฐาน ระบุเฉพาะในกรณีที่ระบุ securityInfo ในพารามิเตอร์ extraInfoSpec

      • 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[] ไม่บังคับ