อังกฤษ | 简体中文
ปลั๊กอินส่วนขยายสำหรับ Chrome ที่ปรับเปลี่ยนการตอบสนองของคำขอ AJAX
คุณสมบัติหลัก:
สกัดกั้นและแก้ไขการตอบสนองของ XMLHttpRequest และคำขอดึงข้อมูล รวมถึงคำขอสถานะ 404
จับคู่คำขอตามนิพจน์ทั่วไปและวิธีการร้องขอ HTTP
แก้ไขผลลัพธ์การตอบกลับในรูปแบบ JSON หรือ JavaScript พร้อมรองรับไวยากรณ์ mock.js
สร้างสถานการณ์จำลองในการเขียนโปรแกรม JavaScript ได้อย่างง่ายดายโดยการเข้าถึงข้อมูลคำขอดั้งเดิมจากพารามิเตอร์อาร์กิวเมนต์
แผง U-Network ใหม่ใน DevTools เพื่อการสกัดกั้นคำขอและแก้ไขผลลัพธ์การตอบสนองอย่างรวดเร็ว
รองรับการเปลี่ยน URL คำขอ ส่วนหัวและเนื้อหาคำขอ
รองรับการกำหนดค่ากฎการนำเข้า/ส่งออก
รองรับการปรับลำดับกลุ่มและกฎเกณฑ์
รองรับตัวเลือกภาพซ้อนภาพสำหรับการเปิดหน้าการกำหนดค่า
รองรับการสกัดกั้นหน้าการกำหนดค่าเครือข่ายโดยใช้ declarativeNetRequest
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
วิดีโอ: https://www.youtube.com/watch?v=HPtQO0Fyb7I
ในเครื่องมือแก้ไขการตอบกลับ คุณมีตัวเลือกต่อไปนี้:
แก้ไขผลลัพธ์การตอบกลับโดยใช้รูปแบบ JSON/JavaScript
ส่งต่อผลลัพธ์การตอบกลับดั้งเดิมหากล้างตัวแก้ไขการตอบกลับแล้ว
ตัวอย่าง:
{ "status": 200, "response": "OK" }
เมื่อใช้วิธีการ JavaScript เพื่อแก้ไขผลลัพธ์การตอบสนอง คุณสามารถสร้างและดำเนินการฟังก์ชันโดยใช้ new Function(responseText)
และผลลัพธ์การตอบสนองจะเป็นค่าที่ส่งคืนของฟังก์ชัน
ตัวอย่าง:
const data = [];สำหรับ (ให้ i = 0; i < 10; i++) { data.push({ id: i });} กลับ { "สถานะ": 200, "การตอบสนอง": ข้อมูล}
ตัวอย่าง:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]}); กลับ { "สถานะ": 200, "การตอบสนอง": ข้อมูล}
สิ่งนี้จะสร้างข้อมูลที่คล้ายกับดังต่อไปนี้:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
ตัวอย่าง:
ให้ { วิธีการ payload, originalResponse } = อาร์กิวเมนต์ [0]; ถ้า (วิธีการ === 'รับ') { // do some}if (เพย์โหลด) { // { queryStringParameters,requestPayload } // ทำอะไรสักอย่าง} กลับ { "สถานะ": 200, "การตอบสนอง": การตอบสนองดั้งเดิม};
ในแผงคำขอ คุณสามารถแก้ไข URL คำขอ วิธีการ ส่วนหัว และเพย์โหลดได้
ในตัวอย่างด้านล่าง เส้นทางคำขอ /auth/login
ที่ตรงกันจะถูกแทนที่ด้วย /auth/login2
และวิธีการร้องขอจะเปลี่ยนเป็น POST คุณสามารถเปิด DevTools และตรวจสอบคำขอที่แก้ไขได้ในแผงเครือข่าย
ในตัวอย่างด้านล่าง ส่วนหัว Content-Type
ในคำขอจะถูกแทนที่ด้วย application/json
ในตัวอย่างด้านล่าง test: test123
จะถูกเพิ่มไปยังเพย์โหลดของคำขอ คุณสามารถเปิด DevTools และตรวจสอบเนื้อหาคำขอที่แก้ไขได้ในแผงเครือข่าย
chrome.declarativeNetRequest
กฎต่อไปนี้จะบล็อกคำขอสคริปต์ทั้งหมดที่มาจากโดเมน 'react.docschina.org' และมีสตริงย่อย 'main' ใน URL
- {"id" : 1,"priority": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "resourceTypes" : ["script"]} -
กฎต่อไปนี้จะเปลี่ยนเส้นทางคำขอสคริปต์ทั้งหมดที่มาจากโดเมน 'react.docschina.org' และมีสตริงย่อย 'main' ใน URL ไปยัง 'new.react.docschina.org'
- {"id": 1,"priority": 1,"action": { "type": "redirect", "redirect": {"transform": { "host": "new.react.docschina.org", "scheme": "https"} }},"condition": { "urlFilter": "main", "domains" : ["react.docschina.org"], "resourceTypes": ["สคริปต์"]} -
สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารประกอบ เอกสารประกาศ NetRequest
- // 唯一标识规则的 id。必填项应为 >= 1"id": 1,// 规则优先级。默认值为 1。指定时,应为 >= 1"priority": 1,/ /匹配此规则时要执行的操作"action": { // 要执行的操作的类型。 block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests "type": "redirect", //描述应如何执行重定向。仅对重定向规则有效。 "redirect": {// 重定向网址。不允许重定向到 JavaScript 网址。"url": "",// 要执行的 URL 转换。"transform": { // 请求的新方案。允许的值是“http”,“https”,“ftp” และ“chrome扩ส่วนขยาย名”。 "scheme": " https", // โฮสต์ใหม่: "new.react.docschina.org", // 请求的新路径。如果为空,则清除现有路径。 "path": "", // 请求的新端口。如果为空,则清除现有端口. "port": "", // 请求的新鮵。应为空,在这种情况下,将清除现有陮;或应以“#”เปิด头。 "fragment": "", //请求的新查询。应为空,在这种情况下,将清除现有查询;或者应该以“?” ขยาย头。 "query": "", // "queryTransform": // 要添加或替换的查询键值对的列表"addOrReplaceParams": [ {"key": "","value": "",//如果为 จริง,则仅当查询键已存在时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为false。"replaceOnly": false, }],// 要删除的查询键的列表。"removeParams": [] }, // 请求的新用户名 "username": "", // 请求的新密码。 "รหัสผ่าน": "",},//相对于扩ส่วนขยาย目录的路径。应以“/”เปิด头。"extensionPath": "",// 对于指定了 regexFilter ของ规则,使用此替换模式。 ใน URL 中,regexFilter的第一个匹配项将被替换为此模式。在 regexSubstitution 内部,可以使用反斜杠转义的数字(1 ปีที่แล้ว 9)来插入相应的捕获组。� 指的是整个匹配文本。"regexSubstitution": "" }, // 要为请求修改的请求标头。仅当 RuleActionType 为“modifyHeaders” 时才有效。 "requestHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 ผนวก、ตั้งค่า、ลบ "การดำเนินการ": " ", //标头的新值。必须为 和 set 操作 append 指定。 "value": "",} ], // 要为请求修改的响应标头。仅当 RuleActionType 为 “modifyHeaders” 时才有效。 "responseHeaders": [{ // 要修改的标头的名称。 "header": "", //要对标头执行的操作。 append、set、remove "operation": "", // 标头的新值。必须为 和 set 操作 append 指定。 "value": "",} ],},// 触发此规则的条件"condition": { // 与网络请求 URL 匹配的模式 "urlFilter": "main", // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语法。 "regexFilter": "", // 注: 只能指定 หรือ regexFilter 中的一个 urlFilter 。 //该规则将仅匹配源自 列表 domains 的网络请求。 自 Chrome 101 起已弃用,改用 beginningorDomains "domains" : ["react.docschina.org"], // 【ใหม่】Chrome 101+该规则将仅匹配源自 列表 ผู้ริเริ่มโดเมน的网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "initiatorDomains" : ["react.docschina.org"], // 该规则将不匹配源自列表 ยกเว้นDomains ของ Chrome 101 起已弃用, 改用 ไม่รวมInitiatorDomains "excludedDomains" : [""], // 【ใหม่】Chrome 101+ 该规则将不匹配源自 列表 ยกเว้นInitiatorDomains的网络请求。如果列表为空或省略,则不排除任何域。这优先于 beginningorDomains 。 "excludedInitiatorDomains": [""], // "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport", "webbundle" หรือ "other" "resourceTypes": ["script"], //指定网络请求是其来源域的第一方还是第三方。如果省略,则接受所有请求。 firstParty、thirdParty "domainType": "", //规则不匹配的请求方法列表。仅应指定 和 ไม่รวมRequestMethods 中的一个 requestMethods 。如果未指定它们,则匹配所有请求方法。 "excludedRequestMethods": "", // "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、" ใส่", "อื่นๆ" //规则不匹配的资源类型列表。仅应指定 和 ไม่รวมResourceTypes 中的一个 ประเภททรัพยากร 。如果未指定它们,则将阻止除“main_frame”之外的所有资源类型。 "excludedResourceTypes": "", // "main_frame"、"sub_frame"、"stylesheet"、"script"、"image"、"font"、"object"、"xmlhttprequest"、"ping"、"csp_report"、"media"、"websocket"、"webtransport "、"webbundle"、"other" // 规则应匹配 tabs.Tab.id的列表。匹配不是源自选项卡的请求的 tabs.TAB_ID_NONE ID。不允许使用空列表。仅会话范围的规则受支持。 "tabIds": [], // 规则不应匹配 tabs.Tab.id ของแท็บต่างๆ.TAB_ID_NONE ID排除不是源自选项卡的请求。仅会话范围的规则受支持。 "excludedTabIds": [], // urlFilter 或 regexFilter (以指定者为准)是否区分大写。默认值为 true。 "isUrlFilterCaseSensitive": true, // 仅当域与 列表中的 requestDomains网络请求匹配时,该规则才会匹配网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "requestDomains": [], // 规则可以匹配的 HTTP 请求方法列表。不允许使用空列表。 "requestMethods": [], // 注意:指定 requestMethods规则条件也会排除非 HTTP(s) 请求,而指定 ยกเว้นRequestMethods 则不会。} -
ใบอนุญาตเอ็มไอที