Bahasa Inggris | 简体中文
Plugin ekstensi untuk Chrome yang mengubah respons permintaan AJAX.
Fitur utama:
Mencegat dan mengubah respons XMLHttpRequest dan mengambil permintaan, termasuk permintaan status 404.
Cocokkan permintaan berdasarkan ekspresi reguler dan metode permintaan HTTP.
Edit hasil respons dalam format JSON atau JavaScript, dengan dukungan sintaks mock.js.
Buat skenario tiruan dengan mudah dalam pemrograman JavaScript dengan mengakses informasi permintaan asli dari parameter argumen.
Panel U-Network baru di DevTools untuk mencegat permintaan dengan cepat dan mengubah hasil respons.
Dukungan mengubah URL permintaan, header permintaan, dan isi.
Mendukung konfigurasi aturan impor/ekspor.
Mendukung penyesuaian urutan grup dan aturan.
Mendukung opsi gambar-dalam-gambar untuk membuka halaman konfigurasi.
Mendukung penyadapan halaman konfigurasi jaringan menggunakan declarativeNetRequest.
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
Video: https://www.youtube.com/watch?v=HPtQO0Fyb7I
Di editor Respons, Anda memiliki opsi berikut:
Edit hasil respon menggunakan format JSON/JavaScript.
Meneruskan hasil respons asli jika editor Respons dihapus.
Contoh:
{ "status": 200, "response": "OK" }
Saat menggunakan pendekatan JavaScript untuk mengedit hasil respons, Anda dapat membuat dan menjalankan fungsi menggunakan new Function(responseText)
, dan hasil respons akan menjadi nilai kembalian fungsi tersebut.
Contoh:
const data = [];for (misalkan i = 0; i < 10; i++) { data.push({ id: i });}kembali { "status": 200, "respon": data}
Contoh:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { "status": 200, "respon": data}
Ini akan menghasilkan data seperti berikut:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
Contoh:
let { metode, payload, originalResponse } = argumen[0];if (metode === 'dapatkan') { // melakukan sesuatu}jika (payload) { // { queryStringParameters,requestPayload } // melakukan sesuatu}kembali { "status": 200, "respon": originalResponse};
Di panel Permintaan, Anda dapat mengubah URL permintaan, metode, header, dan payload.
Pada contoh di bawah, jalur permintaan /auth/login
yang cocok akan diganti dengan /auth/login2
, dan metode permintaan akan diubah menjadi POST. Anda dapat membuka DevTools dan memeriksa permintaan yang diubah di panel Jaringan.
Pada contoh di bawah, header Content-Type
dalam permintaan akan diganti dengan application/json
.
Pada contoh di bawah, test: test123
akan ditambahkan ke payload permintaan. Anda dapat membuka DevTools dan memeriksa isi permintaan yang diubah di panel Jaringan.
chrome.declarativeNetRequest
Aturan berikut akan memblokir semua permintaan skrip yang berasal dari domain 'react.docschina.org' dan berisi substring 'utama' di URL.
[ {"id" : 1,"priority": 1,"action" : { "type" : "block" },"kondisi" : { "urlFilter" : "main", "domain" : ["react.docschina. org"], "resourceTypes" : ["script"]} }]
Aturan berikut akan mengalihkan semua permintaan skrip yang berasal dari domain 'react.docschina.org' dan berisi substring 'utama' di URL ke 'new.react.docschina.org'.
[ {"id": 1,"priority": 1,"action": { "type": "redirect", "redirect": {"transform": { "host": "new.react.docschina.org", "scheme": "https"} }},"condition": { "urlFilter": "main", "domain" : ["react.docschina.org"], "resourceTypes": ["script"]} }]
Untuk lebih jelasnya, silakan merujuk ke dokumentasi. Dokumentasi DeclarativeNetRequest
[ {// 唯一标识规则的 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", // 请求的新主机。 "host": "new.react.docschina.org", // 请求的新路径。如果为空,则清除现有路径。 "path": "", // port: "", //请求的新片段。应为空,在这种情况下,将清除现有片段;或应以“#”开头。 "fragment": "", //请求的新查询。应为空,在这种情况下,将清除现有查询;或者应该以“?”开头。 "query": "", // "queryTransform": {// 要添加或替换的查询键值对的列表"addOrReplaceParams": [ {"key": "","value": "",// 如果为benar, itu benar, dan itu adalah hal yang baik. false。"replaceOnly": false, }],// 要删除的查询键的列表。"removeParams": [] }, // 请求的新用户名 "username": "", // 请求的新密码。 "kata sandi": "",},// 相对于扩展目录的路径。应以“/”开头。"extensionPath": "",// 对于指定了 regexFilter , regexFilter , regexFilter , regexFilter , regexSubstitution, regexSubstitution内部,可以使用反斜杠转义的数字(1 到 9)来插入相应的捕获组。� "regexSubstitution": "" }, // 要为请求修改的请求标头。仅当 RuleActionType ke “modifyHeaders” 时才有效。 "requestHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 append、set、remove "operation": "", //标头的新值。必须为 和 set 操作 tambahkan 指定。 "value": "",} ], // melakukan RuleActionType dan “modifyHeaders” menjadi “responseHeaders”: [{ //要修改的标头的名称。 "header": "", // 要对标头执行的操作。 append、set、remove "operation": "", // 标头的新值。必须为 和 set操作 tambahkan 指定。 "value": "",} ],},// 触发此规则的条件"condition": { // 与网络请求 URL 匹配的模式 "urlFilter": "main", // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语法。 "regexFilter": "", // 注: 只能指定 atau regexFilter 中的一个 urlFilter 。 //该规则将仅匹配源自 列表 domains 的网络请求。 自 Chrome 101 起已弃用,改用 initiatorDomains "domains" : ["react.docschina.org"], // 【new】Chrome 101+ 该规则将仅匹配源自 列表 initiatorDomains bisnis asuransi kesehatan用于来自所有域的请求. "initiatorDomains" : ["react.docschina.org"], // 该规则将不匹配源自列表 dikecualikanDomains 的网络请求。 自 Chrome 101 起已弃用,改用 dikecualikanInitiatorDomains "excludedDomains" : [""], // 【baru】Chrome 101+ 该规则将不匹配源自 列表 dikecualikanInitiatorDomains InitiatorDomains 。 "excludedInitiatorDomains": [""], // "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport", "webbundle", atau "lainnya" "resourceTypes": ["script"], // FirstParty、thirdParty "domainType": "", // tidak termasukRequestMethods dan requestMethods "excludedRequestMethods": "", // "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、" letakkan"、"lainnya" // ResourceTypes yang dikecualikan dan ResourceTypes yang dikecualikan 。如果未指定它们,则将阻止除“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的列表。的 tabs.TAB_ID_NONE ID 排除不是源自选项卡的请求。仅会话范围的规则受支持。 "excludedTabIds": [], // urlFilter dan regexFilter (以指定者为准)是否区分大小写。默认值为 true。 "isUrlFilterCaseSensitive": true, // 仅当域与 列表中的permintaanDomain perusahaan asuransi kesehatan, perusahaan asuransi kesehatan, perusahaan asuransi kesehatan, perusahaan asuransi kesehatan, perusahaan asuransi kesehatan ,则该规则将应用于来自所有域的请求。不允许使用空列表。 "requestDomains": [], // 规则可以匹配的 HTTP 请求方法列表。不允许使用空列表。 "requestMethods": [], // 注意:指定 requestMethods Tidak termasuk HTTP(s) dan tidak termasukRequestMethods dan lebih banyak lagi. }]
Lisensi MIT.