Englisch | 简体中文
Ein Erweiterungs-Plugin für Chrome, das die Antwort von AJAX-Anfragen ändert.
Hauptmerkmale:
Abfangen und Ändern der Antwort von XMLHttpRequest- und Abrufanforderungen, einschließlich 404-Statusanforderungen.
Match-Anfragen basierend auf regulären Ausdrücken und HTTP-Anfragemethoden.
Bearbeiten Sie Antwortergebnisse im JSON- oder JavaScript-Format mit Unterstützung für die Mock.js-Syntax.
Erstellen Sie ganz einfach Simulationsszenarien in der JavaScript-Programmierung, indem Sie über den Arguments-Parameter auf die ursprünglichen Anforderungsinformationen zugreifen.
Neues U-Network-Panel in DevTools zum schnellen Abfangen von Anfragen und Ändern der Antwortergebnisse.
Unterstützen Sie die Änderung der Anforderungs-URL, der Anforderungsheader und des Anforderungstexts.
Unterstützt das Importieren/Exportieren von Regelkonfigurationen.
Unterstützung beim Anpassen der Reihenfolge von Gruppen und Regeln.
Unterstützt die Bild-in-Bild-Option zum Öffnen der Konfigurationsseite.
Unterstützt das Abfangen von Netzwerkkonfigurationsseiten mithilfe von declarativeNetRequest.
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
Video: https://www.youtube.com/watch?v=HPtQO0Fyb7I
Im Antworteditor haben Sie folgende Möglichkeiten:
Bearbeiten Sie die Antwortergebnisse im JSON/JavaScript-Format.
Leiten Sie die ursprünglichen Antwortergebnisse weiter, wenn der Antworteditor deaktiviert ist.
Beispiel:
{ "status": 200, "response": "OK" }
Wenn Sie den JavaScript-Ansatz zum Bearbeiten von Antwortergebnissen verwenden, können Sie mit new Function(responseText)
eine Funktion generieren und ausführen, und die Antwortergebnisse sind der Rückgabewert der Funktion.
Beispiel:
const data = [];for (let i = 0; i < 10; i++) { data.push({ id: i });}return { „Status“: 200, „Antwort“: Daten}
Beispiel:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { „Status“: 200, „Antwort“: Daten}
Dadurch werden Daten ähnlich den folgenden generiert:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
Beispiel:
let { method, payload, originalResponse } = arguments[0];if (method === 'get') { // etwas tun}if (payload) { // { queryStringParameters,requestPayload } // etwas tun}return { „Status“: 200, "Antwort": originalResponse};
Im Anforderungsbereich können Sie die Anforderungs-URL, die Methode, die Header und die Nutzlast ändern.
Im folgenden Beispiel wird jeder übereinstimmende /auth/login
Anforderungspfad durch /auth/login2
ersetzt und die Anforderungsmethode wird in POST geändert. Sie können die DevTools öffnen und die geänderte Anfrage im Netzwerkfenster überprüfen.
Im folgenden Beispiel wird der Content-Type
Header in der Anfrage durch application/json
ersetzt.
Im folgenden Beispiel wird test: test123
zur Anforderungsnutzlast hinzugefügt. Sie können die DevTools öffnen und den geänderten Anforderungstext im Bereich „Netzwerk“ überprüfen.
chrome.declarativeNetRequest
Die folgende Regel blockiert alle Skriptanfragen, die von der Domäne „react.docschina.org“ kommen und die Teilzeichenfolge „main“ in der URL enthalten.
[ {"id" : 1,"priority": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "resourceTypes" : ["script"]} }]
Die folgende Regel leitet alle Skriptanfragen, die von der Domäne „react.docschina.org“ kommen und den „main“-Teilstring in der URL enthalten, an „new.react.docschina.org“ um.
[ {"id": 1,"priority": 1,"action": { "type": "redirect", "redirect": {"transform": { "host": "new.react.docschina.org", "scheme": "https"} }},"condition": { "urlFilter": "main", "domains" : ["react.docschina.org"], "resourceTypes": ["Skript"]} }]
Weitere Einzelheiten entnehmen Sie bitte der Dokumentation. declarativeNetRequest-Dokumentation
[ : 1,// Erweitern Sie die Aktion um „action“: { // Umleiten Sie die Aktion. block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests „type“: „redirect“, //描述应如何执行重定向.仅对重定向规则有效。 „redirect“: {// 重定向网址。不允许重定向到 JavaScript网址。"url": "",// 要执行的 URL 转换。"transform": { // 请求的新方案。允许的值是“http“, „https“, „ftp“ und „chrome“ 。 „Schema“: „https“, // 请求的新主机。 „host“: „new.react.docschina.org“, // 请求的新路径。如果为空,则清除现有路径。 „path“: „“, // „port“: „“, //请求的新片段.应为空,在这种情况下,将清除现有片段;或应以“#”开头。 "fragment": "", //请求的新查询.应为空,在这种情况下,将清除现有查询;或者应该以“?”开头。 "query": "", //添加、删除或替换查询键值对. "",// 如果为true,则仅当查询键已存在时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为 false。"replaceOnly": false, }],// Erweitern Sie den Benutzernamen. ,},// Geben Sie die URL ein中, regexFilter ist die einzige Möglichkeit, die Funktion des Benutzers zu nutzen. Mit regexSubstitution können Sie die Funktion 1 Jahr lang nutzen 9). RuleActionType mit „modifyHeaders“ ist nicht verfügbar. „requestHeaders“: [{ // Der Befehl lautet: „Header“: „“, // Der Befehl „modifyHeaders“ ist nicht verfügbar. append、set、remove „operation“ : "", // 标头的新值。必须为 和 set 操作 append 指定。 „value“: „“,} ], // Der RuleActionType ist ein „modifyHeaders“-Element. "header": "", // Füge den Befehl append、set、remove hinzu. append、set、remove "operation": "," ",} ],},// 触发此规则的条件„condition“: { // 与网络请求 URL 匹配的模式 „urlFilter“: „main“, // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语法。 „regexFilter“: „“, // 注: 只能指定 or regexFilter urlFilter的网络请求101+ 该规则将仅匹配源自 列表 initiatorDomains的网络请求.如果省略该列表,则该规则将应用于来自所有域的请求.不允许使用空列表. "initiatorDomains" : ["react.docschina.org"], // Die Funktion „excludedDomains“ wird von der Chrome 101-Version ausgeschlossen "excludedDomains" : [""], // 【new】Chrome 101+ wird mit der Funktion „excludedInitiatorDomains“ aktualisiert的网络请求。如果列表为空或省略,则不排除任何域。这优先于 initiatorDomains 。 "excludedInitiatorDomains": [""], // "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", „csp_report“, „media“, „websocket“, „webtransport“, „webbundle“ oder „other“ „resourceTypes“: [“script“], // firstParty、thirdParty "domainType": "", // Sie haben die Funktion „excludeRequestMethods“ und „requestMethods“ verwendet "excludedRequestMethods": "", // "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、" put"、"other" // Sie können auch die Option „excludedResourceTypes“ und „resourceTypes“ verwenden 。Wenn Sie den „main_frame“ nicht verwenden, können Sie ihn auch verwenden. „excludedResourceTypes“: „“, // „main_frame“, „sub_frame“, „stylesheet“, „script“, „image“, „font“, „object“, „xmlhttprequest“, „ping“, „csp_report“, „media“, „websocket“ und „webtransport“. "、"webbundle"、"other" // Klicken Sie auf tabs.Tab.id Klicken Sie auf tabs.TAB_ID_NONE ID.不允许使用空列表.仅会话范围的规则受支持。 „tabIds“: [], // Wird von tabs.Tab.id verwendet tabs.TAB_ID_NONE ID 排除不是源自选项卡的请求.仅会话范围的规则受支持。 "excludedTabIds": [], // urlFilter oder regexFilter (以指定者为准)是否区分大小写.默认值为 true。 „isUrlFilterCaseSensitive“: true, // 仅当域与 列表中的 requestDomains网络请求匹配时,该规则才会匹配网络请求.如果省略该列表则该规则将应用于来自所有域的请求.不允许使用空列表. „requestDomains“: [], // Die HTTP-Anfrage lautet „RequestDomains“. Die Verwendung von HTTP(s) ist nicht möglich. }]
MIT-Lizenz.