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

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
มีข้อมูลที่ส่งภายในข้อมูลแบบฟอร์ม สำหรับแบบฟอร์มที่เข้ารหัส 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
ค่าแจกแจง
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
ค่าแจกแจง
"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์
"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล
"asyncBlocking"
ระบุว่าฟังก์ชันเรียกกลับได้รับการจัดการแบบไม่พร้อมกัน
"extraHeaders"
ระบุว่าส่วนหัวละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnBeforeRedirectOptions
ค่าแจกแจง
"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnBeforeRequestOptions
ค่าแจกแจง
"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล
"requestBody"
ระบุว่าควรใส่เนื้อหาของคำขอไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnBeforeSendHeadersOptions
ค่าแจกแจง
"requestHeaders"
ระบุว่าควรใส่ส่วนหัวของคำขอไว้ในเหตุการณ์
"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnCompletedOptions
ค่าแจกแจง
"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnErrorOccurredOptions
ค่า
"extraHeaders"
OnHeadersReceivedOptions
ค่าแจกแจง
"blocking"
ระบุว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล
"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
"securityInfo"
ระบุว่าควรใส่ SecurityInfo ไว้ในเหตุการณ์
"securityInfoRawDer"
ระบุว่าควรใส่ SecurityInfo ที่มีไบต์ดิบของใบรับรองไว้ในเหตุการณ์
OnResponseStartedOptions
ค่าแจกแจง
"responseHeaders"
ระบุว่าควรใส่ส่วนหัวของการตอบกลับไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
OnSendHeadersOptions
ค่าแจกแจง
"requestHeaders"
ระบุว่าควรใส่ส่วนหัวของคำขอไว้ในเหตุการณ์
"extraHeaders"
ระบุว่าส่วนหัวสามารถละเมิดกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ได้
RequestFilter
ออบเจ็กต์ที่อธิบายตัวกรองที่จะใช้กับเหตุการณ์ webRequest
พร็อพเพอร์ตี้
-
tabId
หมายเลข ไม่บังคับ
-
ประเภท
ResourceType[] ไม่บังคับ
รายการประเภทคำขอ ระบบจะกรองคำขอที่ไม่ตรงกับประเภทใดๆ ออก
-
URL
string[]
รายการ URL หรือรูปแบบ URL ระบบจะกรองคำขอที่ไม่ตรงกับ URL ใดๆ ออก
-
windowId
หมายเลข ไม่บังคับ
ResourceType
ค่าแจกแจง
"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()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
): Promise<void>
ต้องเรียกใช้เมื่อลักษณะการทำงานของตัวแฮนเดิล webRequest เปลี่ยนไปเพื่อป้องกันการจัดการที่ไม่ถูกต้องเนื่องจากการแคช การเรียกใช้ฟังก์ชันนี้มีค่าใช้จ่ายสูง อย่าโทรหาบ่อย
พารามิเตอร์
-
callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callbackมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 116 ขึ้นไประบบรองรับ Promise สำหรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้การเรียกกลับ
กิจกรรม
onActionIgnored
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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ ค่านี้จะไม่มีอยู่หากคำขอเป็นการไปยังส่วนต่างๆ ของเฟรม
-
documentLifecycleChrome 106 ขึ้นไป
วงจรของเอกสาร
-
ข้อผิดพลาด
สตริง
คำอธิบายข้อผิดพลาด เราไม่รับประกันว่าสตริงนี้จะยังคงเข้ากันได้แบบย้อนหลังระหว่างรุ่นต่างๆ คุณต้องไม่แยกวิเคราะห์และดำเนินการตามเนื้อหาของไฟล์
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรการใช้งานของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรการใช้งานของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 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 ของเอกสารที่ส่งคำขอ
-
documentLifecycleChrome 106 ขึ้นไป
วงจรการใช้งานของเอกสาร
-
frameId
ตัวเลข
ค่า 0 บ่งชี้ว่าคำขอเกิดขึ้นในเฟรมหลัก ส่วนค่าบวกบ่งชี้รหัสของเฟรมย่อยที่คำขอเกิดขึ้น หากโหลดเอกสารของ (เฟรมย่อย) (
typeเป็นmain_frameหรือsub_frame)frameIdจะระบุรหัสของเฟรมนี้ ไม่ใช่รหัสของเฟรมด้านนอก รหัสเฟรมจะไม่ซ้ำกันภายในแท็บ -
frameTypeChrome 106 ขึ้นไป
ประเภทเฟรมที่เกิดคำขอ
-
ผู้เริ่ม
สตริง ไม่บังคับ
Chrome 63 ขึ้นไปต้นทางที่เริ่มคำขอ ซึ่งจะไม่เปลี่ยนแปลงผ่านการเปลี่ยนเส้นทาง หากเป็นต้นทางที่ไม่โปร่งใส ระบบจะใช้สตริง "null"
-
method
สตริง
เมธอด HTTP มาตรฐาน
-
parentDocumentId
สตริง ไม่บังคับ
Chrome 106 ขึ้นไปUUID ของเอกสารหลักที่เป็นเจ้าของเฟรมนี้ ระบบจะไม่ตั้งค่านี้หากไม่มีองค์กรหลัก
-
parentFrameId
ตัวเลข
รหัสของเฟรมที่ครอบเฟรมซึ่งส่งคำขอ ตั้งค่าเป็น -1 หากไม่มีเฟรมหลัก
-
requestHeaders
HttpHeaders ไม่บังคับ
ส่วนหัวของคำขอ HTTP ที่ส่งออกไปพร้อมกับคำขอนี้
-
requestId
สตริง
รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้
-
tabId
ตัวเลข
รหัสของแท็บที่เกิดคำขอ ตั้งค่าเป็น -1 หากคำขอไม่เกี่ยวข้องกับแท็บ
-
timeStamp
ตัวเลข
เวลาที่ทริกเกอร์สัญญาณนี้ในหน่วยมิลลิวินาทีตั้งแต่ Epoch
-
ประเภท
วิธีใช้ทรัพยากรที่ขอ
-
URL
สตริง
-
-
-
ตัวกรอง
-
extraInfoSpec
OnSendHeadersOptions[] ไม่บังคับ