Anglais | 简体中文
Un plugin d'extension pour Chrome qui modifie la réponse des requêtes AJAX.
Principales caractéristiques :
Interceptez et modifiez la réponse de XMLHttpRequest et récupérez les requêtes, y compris les requêtes d'état 404.
Faites correspondre les requêtes basées sur des expressions régulières et des méthodes de requête HTTP.
Modifiez les résultats de la réponse au format JSON ou JavaScript, avec prise en charge de la syntaxe mock.js.
Créez facilement des scénarios fictifs dans la programmation JavaScript en accédant aux informations de la demande originale à partir du paramètre arguments.
Nouveau panneau U-Network dans DevTools pour intercepter rapidement les requêtes et modifier les résultats des réponses.
Prise en charge de la modification de l'URL de la demande, des en-têtes et du corps de la demande.
Prise en charge des configurations de règles d’importation/exportation.
Prise en charge de l'ajustement de l'ordre des groupes et des règles.
Prise en charge de l'option image dans l'image pour ouvrir la page de configuration.
Prise en charge de l'interception des pages de configuration réseau à l'aide de déclarativeNetRequest.
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
Vidéo : https://www.youtube.com/watch?v=HPtQO0Fyb7I
Dans l'éditeur de réponse, vous disposez des options suivantes :
Modifiez les résultats de la réponse à l'aide du format JSON/JavaScript.
Transférez les résultats de la réponse d'origine si l'éditeur de réponse est effacé.
Exemple:
{ "status": 200, "response": "OK" }
Lorsque vous utilisez l'approche JavaScript pour modifier les résultats de la réponse, vous pouvez générer et exécuter une fonction à l'aide new Function(responseText)
, et les résultats de la réponse seront la valeur de retour de la fonction.
Exemple:
const data = [];for (soit i = 0; i < 10; i++) { data.push({ id : i });}return { "statut": 200, "réponse": données}
Exemple:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { "statut": 200, "réponse": données}
Cela générera des données similaires aux suivantes :
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
Exemple:
let { méthode, charge utile, originalResponse } = arguments[0];if (méthode === 'get') { // faire quelque chose}if (charge utile) { // { queryStringParameters,requestPayload } // faire quelque chose}revenir { "statut": 200, "réponse": originalResponse};
Dans le panneau Requête, vous pouvez modifier l'URL, la méthode, les en-têtes et la charge utile de la demande.
Dans l'exemple ci-dessous, tout chemin de requête /auth/login
correspondant sera remplacé par /auth/login2
et la méthode de requête sera remplacée par POST. Vous pouvez ouvrir les DevTools et vérifier la demande modifiée dans le panneau Réseau.
Dans l'exemple ci-dessous, l'en-tête Content-Type
dans la requête sera remplacé par application/json
.
Dans l'exemple ci-dessous, test: test123
sera ajouté à la charge utile de la requête. Vous pouvez ouvrir les DevTools et vérifier le corps de la requête modifié dans le panneau Réseau.
chrome.declarativeNetRequest
La règle suivante bloquera toutes les requêtes de script provenant du domaine « react.docschina.org » et contenant la sous-chaîne « principale » dans l'URL.
[ {"id" : 1,"priority": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "types de ressources" : ["script"]} }]
La règle suivante redirigera toutes les requêtes de script provenant du domaine « react.docschina.org » et contenant la sous-chaîne « main » dans l'URL vers « 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"]} }]
Pour plus de détails, veuillez vous référer à la documentation. Documentation déclarativeNetRequest
[ {// 唯一标识规则的 id。必填项,应为 >= 1"id": 1,// 规则优先级。默认值为 1。指定时,应为 >= 1"priority": 1,// "action": { // block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests "type": "redirect", // "redirect": {// URL : "",// URL de la page "transform": { // URL de la page "http", "https", "ftp" et "chrome"。 "scheme": " https", // "path": "", // "port": "", // "fragment": "", // "query": "", // "queryTransform": {//如果为true , 则仅当查询键已存在时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为 false。"replaceOnly": false, }],// Nom d'utilisateur : "", // Nom d'utilisateur : "", // Mot de passe : "" ,},//相对于扩展目录的路径。应以“/”开头。"extensionPath": "",// regexFilter 的规则,使用此替换模式。在 URL Il s'agit d'un filtre regexFilter. "regexSubstitution": "" }, // 要为请求修改的请求标头。仅当RuleActionType est "modifyHeaders" au lieu de "requestHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 append、set、remove "opération" : "", //标头的新值。必须为 et set 操作 append 指定。 "value": "",} ], // . "header": "" ",} ],},// 触发此规则的条件"condition": { // URL de l'URL et "urlFilter": "main", // URL de l'URL "regexFilter": "", // Nom : ou regexFilter plutôt que urlFilter 。 //该规则将仅匹配源自 列表 domains 的网络请求。 自 Chrome 101 起已弃用,改用 initiatorDomains "domains" : ["react.docschina.org"], // 【nouveau】Chrome 101+该规则将仅匹配源自 et initiateurDomains不允许使用空列表。 "initiatorDomains" : ["react.docschina.org"], // Versions du logiciel Chrome 101 pour les domaines exclus, ainsi que pour les domaines exclusInitiatorDomains. "exclusDomains" : [""], // 【nouveau】Chrome 101+ 该规则将不匹配源自 etexclusInitiatorDomains "excusedInitiatorDomains": [""], // "main_frame", "sub_frame", "stylesheet", "script", "image", "police", "object", "xmlhttprequest", "ping", "csp_report", "média", "websocket", "webtransport", "webbundle" ou "other" "resourceTypes": ["script"], // FirstParty、thirdParty "domainType": "", // Il s'agit d'un modèle de requêteMethods et d'un système de requêteMethods. "exusedRequestMethods": "", // "connect", "delete", "get" 、 "head" 、 "options" 、 "patch" 、 "post" 、" put"、"autre" // Il s'agit d'un système de types de ressources exclus et de types de ressources. "exusedResourceTypes": "", // "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_NONE ID n'est plus disponible. "exclusTabIds": [], // urlFilter et regexFilter "isUrlFilterCaseSensitive": true, // indique la valeur de requestDomains该规则才会匹配网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "requestDomains": [], // Paramètres HTTP de la requête HTTP. "requestMethods": [], // Paramètres requestMethods Il s'agit d'un protocole HTTP(s), et d'un système d'exclusionRequestMethods.} }]
Licence MIT.