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

onBeforeRequest(ไม่บังคับ)- ทริกเกอร์เมื่อกำลังจะมีการส่งคำขอ ระบบจะส่งเหตุการณ์นี้ก่อนที่จะสร้างการเชื่อมต่อ TCP และใช้เพื่อยกเลิกหรือเปลี่ยนเส้นทางคำขอได้
onBeforeSendHeaders(ไม่บังคับ)- ทริกเกอร์เมื่อกำลังจะมีการส่งคำขอและมีการเตรียมส่วนหัวเริ่มต้นแล้ว เหตุการณ์นี้มีจุดประสงค์เพื่อให้ส่วนขยายเพิ่ม แก้ไข และลบส่วนหัวของคำขอ (*) ได้
ระบบจะส่งเหตุการณ์
onBeforeSendHeadersไปยังผู้ติดตามทั้งหมด ดังนั้นผู้ติดตามที่แตกต่างกันอาจพยายามแก้ไขคำขอ โปรดดูส่วนรายละเอียดการติดตั้งใช้งานเพื่อดูวิธีจัดการเรื่องนี้ คุณใช้เหตุการณ์นี้ เพื่อยกเลิกคำขอได้ onSendHeaders- ทริกเกอร์หลังจากที่ส่วนขยายทั้งหมดมีโอกาสแก้ไขส่วนหัวของคำขอ และแสดงเวอร์ชันสุดท้ายของ (*) ระบบจะทริกเกอร์เหตุการณ์ก่อนที่จะส่งส่วนหัวไปยังเครือข่าย เหตุการณ์นี้เป็น ข้อมูลและจัดการแบบไม่พร้อมกัน แต่จะไม่สามารถแก้ไขหรือยกเลิกคำขอได้
onHeadersReceived(ไม่บังคับ)- ทริกเกอร์ทุกครั้งที่ได้รับส่วนหัวการตอบกลับ HTTP(S) เนื่องจากการเปลี่ยนเส้นทางและคำขอการตรวจสอบสิทธิ์ จึงอาจเกิดขึ้นหลายครั้งต่อคำขอ เหตุการณ์นี้มีไว้เพื่อให้ส่วนขยายสามารถ เพิ่ม แก้ไข และลบส่วนหัวการตอบกลับ เช่น ส่วนหัว Content-Type ที่เข้ามา ระบบจะประมวลผล คำสั่งแคชก่อนที่จะทริกเกอร์เหตุการณ์นี้ ดังนั้นการแก้ไขส่วนหัว เช่น Cache-Control จึงไม่มีผลต่อแคชของเบราว์เซอร์ นอกจากนี้ ยังช่วยให้คุณยกเลิกหรือเปลี่ยนเส้นทางคำขอได้ด้วย
onAuthRequired(ไม่บังคับ)- ทริกเกอร์เมื่อคำขอต้องมีการตรวจสอบสิทธิ์ของผู้ใช้ เหตุการณ์นี้สามารถจัดการแบบซิงโครนัสเพื่อ ระบุข้อมูลเข้าสู่ระบบสำหรับการตรวจสอบสิทธิ์ โปรดทราบว่าส่วนขยายอาจให้ข้อมูลเข้าสู่ระบบที่ไม่ถูกต้อง โปรดระวัง อย่าป้อนข้อมูลเข้าสู่ระบบที่ไม่ถูกต้องซ้ำๆ จนเกิดลูปไม่สิ้นสุด นอกจากนี้ยังสามารถใช้เพื่อ ยกเลิกคำขอได้ด้วย
onBeforeRedirect- เริ่มทำงานเมื่อกำลังจะมีการเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางอาจเกิดขึ้นจากรหัสการตอบกลับ HTTP หรือจากส่วนขยาย เหตุการณ์นี้เป็นเหตุการณ์ให้ข้อมูลและจัดการแบบไม่พร้อมกัน แต่จะไม่สามารถแก้ไขหรือยกเลิกคำขอได้
onResponseStarted- ทริกเกอร์เมื่อได้รับไบต์แรกของเนื้อหาการตอบกลับ สำหรับคำขอ HTTP หมายความว่าบรรทัดสถานะและส่วนหัวของการตอบกลับพร้อมใช้งาน เหตุการณ์นี้มีไว้เพื่อแจ้งข้อมูลและจัดการ แบบไม่พร้อมกัน โดยจะไม่สามารถแก้ไขหรือยกเลิกคำขอได้
onCompleted- ทริกเกอร์เมื่อประมวลผลคำขอสำเร็จ
onErrorOccurred- ทริกเกอร์เมื่อประมวลผลคำขอไม่สำเร็จ
API คำขอเว็บรับประกันว่าสำหรับแต่ละคำขอ ระบบจะทริกเกอร์ onCompleted หรือ onErrorOccurred เป็นเหตุการณ์สุดท้าย โดยมีข้อยกเว้น 1 ข้อคือ หากคำขอเปลี่ยนเส้นทางไปยัง 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 เป็นต้นไป API webRequest จะไม่สกัดกั้นคำขอการตรวจสอบล่วงหน้าของ CORS และ
การตอบกลับโดยค่าเริ่มต้น ส่วนขยายจะมองเห็นการตรวจสอบล่วงหน้าของ 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 แบบซิงโครนัสจากส่วนขยายจะ
ซ่อนจากตัวแฮนเดิลเหตุการณ์ที่บล็อกเพื่อป้องกันการหยุดชะงัก โปรดทราบว่าสำหรับบาง
รูปแบบที่รองรับ ชุดเหตุการณ์ที่ใช้ได้อาจถูกจำกัดเนื่องจากลักษณะของโปรโตคอลที่เกี่ยวข้อง
เช่น สำหรับไฟล์: รูปแบบ จะส่งได้เฉพาะ onBeforeRequest, onResponseStarted, onCompleted และ onErrorOccurred
ตั้งแต่ Chrome 58 เป็นต้นไป webRequest API จะรองรับการสกัดกั้นคำขอแฮนด์เชค 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 เหตุการณ์
หากต้องการลงทะเบียน Listener เหตุการณ์สำหรับคำขอเว็บ คุณต้องใช้รูปแบบของฟังก์ชันaddListener()
ปกติ นอกเหนือจากการระบุฟังก์ชัน Callback แล้ว คุณยังต้องระบุอาร์กิวเมนต์ตัวกรอง และอาจระบุอาร์กิวเมนต์ข้อมูลเพิ่มเติมที่ไม่บังคับได้ด้วย
อาร์กิวเมนต์ทั้ง 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 แบบพร้อมกัน ซึ่งหมายความว่าคำขอจะถูกบล็อกจนกว่าฟังก์ชัน 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 ประเภท ได้แก่ แคชในดิสก์และแคชในหน่วยความจำที่รวดเร็วมาก อายุการใช้งานของแคชในหน่วยความจำจะเชื่อมโยงกับอายุการใช้งานของกระบวนการแสดงผล ซึ่งสอดคล้องกับแท็บโดยประมาณ
คำขอที่ตอบจากแคชในหน่วยความจำจะไม่ปรากฏใน 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
ออบเจ็กต์ ไม่บังคับ
ใช้เป็นคำตอบสำหรับเหตุการณ์ onAuthRequired เท่านั้น หากตั้งค่าไว้ ระบบจะส่งคำขอโดยใช้ข้อมูลเข้าสู่ระบบที่ระบุ
-
รหัสผ่าน
สตริง
-
ชื่อผู้ใช้
สตริง
-
-
ยกเลิก
บูลีน ไม่บังคับ
หากเป็นจริง ระบบจะยกเลิกคำขอ ซึ่งจะป้องกันไม่ให้มีการส่งคำขอ ซึ่งใช้เป็นการตอบสนองต่อเหตุการณ์ onBeforeRequest, onBeforeSendHeaders, onHeadersReceived และ onAuthRequired ได้
-
redirectUrl
สตริง ไม่บังคับ
ใช้เป็นคำตอบสำหรับเหตุการณ์ onBeforeRequest และ onHeadersReceived เท่านั้น หากตั้งค่าไว้ ระบบจะป้องกันไม่ให้ส่ง/ดำเนินการคำขอเดิมให้เสร็จสมบูรณ์ และจะเปลี่ยนเส้นทางคำขอไปยัง URL ที่ระบุแทน อนุญาตให้เปลี่ยนเส้นทางไปยัง Scheme ที่ไม่ใช่ 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)
-
name
สตริง
ชื่อของส่วนหัว HTTP
-
value
สตริง ไม่บังคับ
ค่าของส่วนหัว HTTP หากแสดงด้วย UTF-8 ได้
IgnoredActionType
ค่าแจกแจง
"เปลี่ยนเส้นทาง"
"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
หมายเลข ไม่บังคับ
-
ประเภท
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
"อื่นๆ"
ระบุทรัพยากรเป็นประเภทที่ไม่ได้รวมอยู่ในประเภทที่ระบุไว้
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
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
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 | undefined
หากระบุ "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
ออบเจ็กต์ ไม่บังคับ
มีข้อมูลเนื้อหาของคำขอ HTTP ระบุเฉพาะในกรณีที่ extraInfoSpec มี "requestBody"
-
ข้อผิดพลาด
สตริง ไม่บังคับ
ข้อผิดพลาดเมื่อรับข้อมูลเนื้อหาคำขอ
-
formData
ออบเจ็กต์ ไม่บังคับ
หากเมธอดคำขอคือ 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
หากระบุ "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 | undefined
หากระบุ "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 ไม่บังคับ
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
หากระบุ "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[] ไม่บังคับ