refresh date: 2026-09-25 robots: noindex
คำอธิบาย
ใช้ 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- เริ่มทำงานเมื่อประมวลผลคำขอไม่สำเร็จ
API คำขอเว็บรับประกันว่าสำหรับคำขอแต่ละรายการ ระบบจะเริ่มทำงาน onCompleted หรือ onErrorOccurred เป็นเหตุการณ์สุดท้าย โดยมีข้อยกเว้นประการหนึ่งคือ หากมีการเปลี่ยนเส้นทางคำขอไปยัง URL data:// ระบบจะรายงาน onBeforeRedirect เป็นเหตุการณ์สุดท้าย
* โปรดทราบว่า Web Request API จะแสดงนามธรรมของสแต็กเครือข่ายไปยังส่วนขยาย ภายในระบบ คำขอ URL รายการเดียวสามารถแยกออกเป็นคำขอ HTTP หลายรายการ (เช่น เพื่อดึงข้อมูลช่วงไบต์แต่ละรายการจากไฟล์ขนาดใหญ่) หรือจัดการโดยสแต็กเครือข่ายโดยไม่ต้องสื่อสารกับเครือข่าย ด้วยเหตุนี้ API จึงไม่มีส่วนหัว HTTP สุดท้ายที่ส่งไปยังเครือข่าย เช่น ส่วนหัวทั้งหมดที่เกี่ยวข้องกับการแคชจะมองไม่เห็นในส่วนขยาย
ปัจจุบันระบบไม่ได้ระบุส่วนหัวต่อไปนี้ให้กับเหตุการณ์ onBeforeSendHeaders เราไม่รับประกันว่ารายการนี้จะสมบูรณ์หรือเสถียร
- การให้สิทธิ์
- Cache-Control
- การเชื่อมต่อ
- Content-Length
- โฮสต์
- If-Modified-Since
- If-None-Match
- If-Range
- ข้อมูลบางส่วน
- Pragma
- Proxy-Authorization
- Proxy-Connection
- Transfer-Encoding
ตั้งแต่ Chrome 79 เป็นต้นไป การแก้ไขส่วนหัวของคำขอจะส่งผลต่อการตรวจสอบการแชร์ทรัพยากรแบบข้ามต้นทาง (CORS) หากส่วนหัวที่แก้ไขสำหรับคำขอแบบข้ามต้นทางไม่เป็นไปตามเกณฑ์ ระบบจะส่งการตรวจสอบล่วงหน้าของ CORS เพื่อถามเซิร์ฟเวอร์ว่ายอมรับส่วนหัวดังกล่าวได้หรือไม่ หากจำเป็นต้องแก้ไขส่วนหัวในลักษณะที่ละเมิดโปรโตคอล CORS คุณต้องระบุ 'extraHeaders' ใน opt_extraInfoSpec ในทางกลับกัน การแก้ไขส่วนหัวการตอบกลับจะใช้ไม่ได้ผลในการหลอกการตรวจสอบ CORS หากต้องการหลอกโปรโตคอล CORS คุณต้องระบุ 'extraHeaders' สำหรับการแก้ไขการตอบกลับด้วย
ตั้งแต่ Chrome 79 เป็นต้นไป webRequest API จะไม่ขัดขวางคำขอและการตอบกลับก่อนการตรวจสอบ CORS โดยค่าเริ่มต้น การตรวจสอบล่วงหน้าของ CORS สำหรับ URL คำขอจะแสดงต่อส่วนขยายหากมี Listener ที่ระบุ 'extraHeaders' ใน opt_extraInfoSpec สำหรับ URL คำขอ
onBeforeRequest ยังสามารถใช้ 'extraHeaders' จาก Chrome 79 ได้ด้วย
ตั้งแต่ Chrome 79 เป็นต้นไป ระบบจะไม่ระบุส่วนหัวของคำขอต่อไปนี้ และไม่สามารถแก้ไขหรือนำออกได้โดยไม่ต้องระบุ 'extraHeaders' ใน opt_extraInfoSpec
- Origin
ตั้งแต่ Chrome 72 เป็นต้นไป หากต้องการแก้ไขการตอบกลับก่อนที่การบล็อกการอ่านข้ามต้นทาง (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
webRequest API จะแสดงเฉพาะคำขอที่ส่วนขยายมีสิทธิ์ดูตามสิทธิ์ของโฮสต์ นอกจากนี้ จะเข้าถึงได้เฉพาะรูปแบบต่อไปนี้เท่านั้น 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 และคำขออื่นๆ ที่มีความละเอียดอ่อนซึ่งเป็นแกนหลักของฟังก์ชันการทำงานของเบราว์เซอร์ นอกจากนี้ XMLHttpRequest แบบซิงโครนัสจากส่วนขยายของคุณจะถูกซ่อนจากตัวแฮนเดิลเหตุการณ์การบล็อกเพื่อป้องกันการหยุดชะงัก โปรดทราบว่าสำหรับรูปแบบที่รองรับบางรูปแบบ ชุดเหตุการณ์ที่ใช้ได้อาจถูกจำกัดเนื่องจากลักษณะของโปรโตคอลที่เกี่ยวข้อง ตัวอย่างเช่น สำหรับรูปแบบ file: ระบบจะส่งได้เฉพาะ onBeforeRequest, onResponseStarted, onCompleted และ onErrorOccurred เท่านั้น
ตั้งแต่ Chrome 58 เป็นต้นไป webRequest API จะรองรับการสกัดกั้นคำขอแฮนด์เชค WebSocket เนื่องจากการแฮนด์เชคทำได้โดยใช้คำขออัปเกรด HTTP โฟลว์ของแฮนด์เชคจึงเหมาะกับโมเดล webRequest ที่เน้น HTTP โปรดทราบว่า API จะไม่สกัดกั้นสิ่งต่อไปนี้
- ข้อความแต่ละรายการที่ส่งผ่านการเชื่อมต่อ WebSocket ที่สร้างขึ้น
- WebSocket กำลังปิดการเชื่อมต่อ
คำขอ WebSocket ไม่รองรับการเปลี่ยนเส้นทาง
ตั้งแต่ Chrome 72 เป็นต้นไป ส่วนขยายจะสกัดกั้นคำขอได้ก็ต่อเมื่อมีสิทธิ์ของโฮสต์ทั้งสำหรับ URL ที่ขอและผู้เริ่มคำขอ
ตั้งแต่ Chrome 96 เป็นต้นไป webRequest API จะรองรับการสกัดกั้นคำขอแฮนด์เชค WebTransport ผ่าน HTTP/3 เนื่องจากการแฮนด์เชคทำได้โดยใช้คำขอ HTTP CONNECT โฟลว์ของคำขอดังกล่าวจึงสอดคล้องกับโมเดล webRequest ที่เน้น HTTP โปรดทราบว่า
- เมื่อสร้างเซสชันแล้ว ส่วนขยายจะไม่สามารถสังเกตหรือแทรกแซงเซสชันผ่าน webRequest API ได้
- ระบบจะไม่สนใจการแก้ไขส่วนหัวของคำขอ HTTP ใน
onBeforeSendHeaders - WebTransport ผ่าน HTTP/3 ไม่รองรับการเปลี่ยนเส้นทางและการตรวจสอบสิทธิ์
แนวคิด
ตามที่อธิบายไว้ในส่วนต่อไปนี้ เหตุการณ์ใน Web Request API จะใช้รหัสคำขอ และคุณสามารถระบุตัวกรองและข้อมูลเพิ่มเติมได้เมื่อลงทะเบียน Listener เหตุการณ์
รหัสคำขอ
คำขอแต่ละรายการจะระบุด้วยรหัสคำขอ รหัสนี้จะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์และบริบทของส่วนขยาย โดยจะคงที่ตลอดวงจรของคำขอและใช้เพื่อจับคู่เหตุการณ์สำหรับคำขอเดียวกันได้ โปรดทราบว่าคำขอ HTTP หลายรายการจะแมปกับคำขอเว็บ 1 รายการในกรณีที่มีการเปลี่ยนเส้นทาง HTTP หรือการตรวจสอบสิทธิ์ HTTP
การลงทะเบียน Listener เหตุการณ์
หากต้องการลงทะเบียน Listener เหตุการณ์สำหรับคำขอเว็บ ให้ใช้รูปแบบต่างๆ ของฟังก์ชัน addListener() ปกติ นอกจากการระบุฟังก์ชัน Callback แล้ว คุณต้องระบุอาร์กิวเมนต์ตัวกรอง และอาจระบุอาร์กิวเมนต์ข้อมูลเพิ่มเติมที่ไม่บังคับด้วย
อาร์กิวเมนต์ 3 รายการสำหรับ addListener() ของ Web Request API มีคำจำกัดความดังนี้
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
ต่อไปนี้คือตัวอย่างการรอฟังเหตุการณ์ onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
การเรียกใช้ addListener() แต่ละครั้งจะใช้ฟังก์ชัน Callback ที่จำเป็นเป็นพารามิเตอร์แรก ระบบจะส่งพจนานุกรมที่มีข้อมูลเกี่ยวกับคำขอ URL ปัจจุบันไปยังฟังก์ชัน Callback นี้ ข้อมูลในพจนานุกรมนี้จะขึ้นอยู่กับประเภทเหตุการณ์ที่เฉพาะเจาะจง รวมถึงเนื้อหาของ opt_extraInfoSpec
หากอาร์เรย์ opt_extraInfoSpec ที่ไม่บังคับมีสตริง 'blocking' (อนุญาตเฉพาะบางเหตุการณ์เท่านั้น) ระบบจะจัดการฟังก์ชัน Callback แบบซิงโครนัส ซึ่งหมายความว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล ในกรณีนี้ 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 รายการพยายามแก้ไขคำขอ ส่วนขยายที่ติดตั้งล่าสุดจะชนะ และระบบจะไม่สนใจส่วนขยายอื่นๆ ทั้งหมด ส่วนขยายจะไม่ได้รับแจ้งหากระบบละเว้นคำสั่งให้แก้ไขหรือเปลี่ยนเส้นทาง
กำลังแคช
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 "การบล็อก" อนุญาตให้เครื่องจัดการเหตุการณ์แก้ไขคำขอเครือข่าย
พร็อพเพอร์ตี้
-
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
มีข้อมูลที่ส่งภายในข้อมูลแบบฟอร์ม สำหรับแบบฟอร์ม urlencoded ระบบจะจัดเก็บเป็นสตริงหากข้อมูลเป็นสตริง utf-8 และจัดเก็บเป็น ArrayBuffer ในกรณีอื่นๆ สำหรับ form-data จะเป็น ArrayBuffer หาก form-data แสดงถึงการอัปโหลดไฟล์ จะเป็นสตริงที่มีชื่อไฟล์ หากมีการระบุชื่อไฟล์
ค่าแจกแจง
ArrayBuffer
สตริง
HttpHeaders
อาร์เรย์ของส่วนหัว HTTP ส่วนหัวแต่ละรายการจะแสดงเป็นพจนานุกรมที่มีคีย์ name และ value หรือ binaryValue
ประเภท
object[]
พร็อพเพอร์ตี้
-
binaryValue
number[] ไม่บังคับ
ค่าของส่วนหัว HTTP หากไม่สามารถแสดงด้วย UTF-8 ได้ โดยจัดเก็บเป็นค่าไบต์แต่ละค่า (0..255)
-
name
สตริง
ชื่อของส่วนหัว HTTP
-
value
สตริง ไม่บังคับ
ค่าของส่วนหัว HTTP หากแสดงด้วย UTF-8 ได้
IgnoredActionType
ค่าแจกแจง
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
ค่าแจกแจง
"responseHeaders"
ระบุว่าควรรวมส่วนหัวการตอบกลับไว้ในเหตุการณ์
"blocking"
ระบุว่าคำขอถูกบล็อกจนกว่าฟังก์ชัน Callback จะแสดงผล
"asyncBlocking"
ระบุว่าระบบจะจัดการฟังก์ชัน Callback แบบไม่พร้อมกัน
"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
number ไม่บังคับ
-
ประเภท
ResourceType[] ไม่บังคับ
รายการประเภทคำขอ ระบบจะกรองคำขอที่ไม่ตรงกับประเภทใดๆ ออก
-
URL
string[]
รายการ URL หรือรูปแบบ URL ระบบจะกรองคำขอที่ไม่ตรงกับ URL ใดๆ ออก
-
windowId
number ไม่บังคับ
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
-
-
รัฐ
สตริง
สถานะของการเชื่อมต่อ ปลอดภัย ไม่ปลอดภัย หรือเสียหาย
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
function ไม่บังคับ
พารามิเตอร์
callbackจะมีลักษณะดังนี้() => void
การคืนสินค้า
-
Promise<void>
Chrome 116 ขึ้นไประบบรองรับ Promise สำหรับ Manifest V3 ขึ้นไปเท่านั้น แพลตฟอร์มอื่นๆ ต้องใช้ Callback
กิจกรรม
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
เริ่มทำงานเมื่อระบบไม่สนใจการแก้ไขที่เสนอของส่วนขยายในคำขอเครือข่าย ซึ่งจะเกิดขึ้นในกรณีที่ขัดแย้งกับส่วนขยายอื่นๆ
พารามิเตอร์
-
callback
ฟังก์ชัน
พารามิเตอร์
callbackจะมีลักษณะดังนี้(details: object) => void
-
รายละเอียด
ออบเจ็กต์
-
การดำเนินการ
การดำเนินการที่เสนอซึ่งถูกละเว้น
-
requestId
สตริง
รหัสของคำขอ รหัสคำขอจะไม่ซ้ำกันภายในเซสชันของเบราว์เซอร์ ด้วยเหตุนี้ จึงสามารถใช้เพื่อเชื่อมโยงเหตุการณ์ต่างๆ ของคำขอเดียวกันได้
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
เริ่มทำงานเมื่อได้รับการตรวจสอบสิทธิ์ที่ล้มเหลว Listener มี 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
บูลีน
True สำหรับ Proxy-Authenticate, False สำหรับ 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
function ไม่บังคับ
Chrome 58+พารามิเตอร์
asyncCallbackจะมีลักษณะดังนี้(response: BlockingResponse) => void
-
การตอบกลับ
-
-
returns
BlockingResponse | undefined
หากระบุ "การบล็อก" ในพารามิเตอร์ "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[] optional
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 | undefined
หากระบุ "การบล็อก" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้
-
-
ตัวกรอง
-
extraInfoSpec
OnBeforeRequestOptions[] optional
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 | undefined
หากระบุ "การบล็อก" ในพารามิเตอร์ "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 ไม่บังคับ
Chrome 144 ขึ้นไปข้อมูลเกี่ยวกับการเชื่อมต่อ 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 | undefined
หากระบุ "การบล็อก" ในพารามิเตอร์ "extraInfoSpec" Listener เหตุการณ์ควรแสดงผลออบเจ็กต์ประเภทนี้
-
-
ตัวกรอง
-
extraInfoSpec
OnHeadersReceivedOptions[] optional
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[],
)
เริ่มทำงานก่อนที่จะส่งคำขอไปยังเซิร์ฟเวอร์ (การแก้ไข Callback ของ 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[] ไม่บังคับ