英語 | 簡體中文
Chrome 的擴充插件,可修改 AJAX 請求的回應。
主要特點:
攔截並修改XMLHttpRequest和fetch請求的回應,包括404狀態請求。
根據正規表示式和HTTP請求方式來符合請求。
以 JSON 或 JavaScript 格式編輯回應結果,並支援mock.js 語法。
透過從參數參數存取原始請求訊息,輕鬆在 JavaScript 程式設計中建立模擬場景。
DevTools 中的新 U-Network 面板可用於快速攔截請求並修改回應結果。
支援更改請求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 = [];for (令 i = 0; i < 10; i++) { data.push({ id: i });}回傳{ 「狀態」:200, 「回應」:數據}
例子:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { 「狀態」:200, 「回應」:數據}
這將產生類似於以下內容的數據:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
例子:
let { 方法,負載,originalResponse } = 參數[0];if (method === 'get') { // 做某件事}if (payload) { // { queryStringParameters,requestPayload } // 做某事}回傳 { 「狀態」:200, “響應”:原始響應};
在請求面板中,您可以修改請求 URL、方法、標頭和負載。
在下面的範例中,任何符合的/auth/login
請求路徑都將替換為/auth/login2
,並且請求方法將變更為 POST。您可以開啟DevTools,在Network面板中查看修改後的請求。
在下面的範例中,請求中的Content-Type
標頭將替換為application/json
。
在下面的範例中, test: test123
將會加入到請求負載中。您可以開啟DevTools並在Network面板中檢查修改後的請求正文。
chrome.declarativeNetRequest
使用指定的聲明性規則來阻止或修改網路請求以下規則將阻止來自「react.docschina.org」網域且 URL 中包含「main」子字串的所有腳本請求。
[ {"id" : 1,"priority": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "資源類型" : ["腳本"]} }]
以下規則會將來自「react.docschina.org」網域且 URL 中包含「main」子字串的所有腳本請求重新導向至「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": ["script"]} }]
有關更多詳細信息,請參閱文件。聲明性NetRequest文檔
[ {// 唯一標識規則的id。 / 符合此規則時要執行的動作"action": { // 要執行的動作的類型。 。的新方案。 docschina.org", // 請求的新路徑。如果為空,則清除現有連接埠。 "path": "", // 要求的新連接埠。如果為空,則清除現有連接埠。 "port": "", // 請求的新片段。空,在這種情況下,將清除現有查詢;或者應該以“?”開頭。 "query": "", // 新增、刪除或替換查詢鍵值對。或替換的查詢鍵值對的清單"addOrReplaceParams": [ {"key": "","value": "",//如果為true,則僅當查詢鍵已存在時,才會替換查詢鍵。否則,如果缺少按鍵,則另外新增按鍵。 username": "", // 請求的新密碼。"password": "",},//相對於擴充目錄的路徑。應以「/」開頭。"extensionPath": "",// For 指定了regexFilter 的規則,使用此替換模式。捕獲組。 ": "", // 要修改的標頭的名稱。"header": "", // 要對標頭執行的操作。追加、設定、刪除"operation": "", // 標頭的新值。 ], // 要修改修改請求的回應標頭。標頭執行的操作。 ],},//觸發此規則的條件"condition": { // 與網路請求 URL 相符的模式 "urlFilter": "main", // 與網路請求 URL 相符的正規表示式。 "regexFilter": "", // 注意:只能指定或regexFilter 中的一個urlFilter 。 : ["react.docschina.org"], // 【新】Chrome 101+ 此規則將僅匹配源自列表initiatorDomains 的網路請求。 initiatorDomains" : ["react.docschina.org"], // 該規則將不匹配衍生列表exceptedDomains 的網絡請求。 自Chrome 101 起已棄用,改用exceptedInitiatorDomains "excludedDomains" : [ ""], // 【新】Chrome 101+規則將不匹配導出列表exceptedInitiatorDomains 的網路請求。類型清單。 media", "websocket", "webtransport", "webbundle", or "other" "resourceTypes": ["script"], // 指定網路請求是其來源網域的第一方還是第三方。如果省略,則接受所有請求。 / "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、"put"、"other" //規則不符的資源類型清單。 exceptedResourceTypes 中的一個資源類型。 、"image"、"font"、"object"、"xmlhttprequest"、"ping"、"csp_report"、"media"、"websocket"、"webtransport"、"webbundle "、"other" // 規則應符合tabs .Tab.id 的清單。 .id 的清單。值為true。允許使用空列表。 ) 請求,而指定RequestMethods 則不會。 }]
麻省理工學院許可證。