Inglês | 简体中文
Um plugin de extensão para Chrome que modifica a resposta de solicitações AJAX.
Principais características:
Intercepte e modifique a resposta de solicitações XMLHttpRequest e de busca, incluindo solicitações de status 404.
Combine solicitações com base em expressões regulares e métodos de solicitação HTTP.
Edite os resultados da resposta no formato JSON ou JavaScript, com suporte para sintaxe mock.js.
Crie facilmente cenários simulados em programação JavaScript acessando informações de solicitação originais no parâmetro argumentos.
Novo painel U-Network no DevTools para interceptar solicitações rapidamente e modificar resultados de respostas.
Suporte para alterar o URL da solicitação, cabeçalhos e corpo da solicitação.
Suporte para importação/exportação de configurações de regras.
Suporte para ajustar a ordem dos grupos e regras.
Suporta opção picture-in-picture para abrir a página de configuração.
Suporte à interceptação de páginas de configuração de rede usando declarativeNetRequest.
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
Vídeo: https://www.youtube.com/watch?v=HPtQO0Fyb7I
No editor de resposta, você tem as seguintes opções:
Edite os resultados da resposta usando o formato JSON/JavaScript.
Encaminhe os resultados da resposta original se o editor de respostas estiver desmarcado.
Exemplo:
{ "status": 200, "response": "OK" }
Ao usar a abordagem JavaScript para editar os resultados da resposta, você pode gerar e executar uma função usando new Function(responseText)
e os resultados da resposta serão o valor de retorno da função.
Exemplo:
const dados = [];for (seja i = 0; i < 10; i++) { data.push({ id: i });}retornar { "status": 200, "resposta": dados}
Exemplo:
dados const = Mock.mock({'lista|1-10': [{'id|+1': 1}]});return { "status": 200, "resposta": dados}
Isso gerará dados semelhantes aos seguintes:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
Exemplo:
deixe { método, carga útil, originalResponse } = argumentos[0];if (método === 'get') { // faça algo}if (payload) { // { queryStringParameters,requestPayload } //faça alguma coisa}return { "status": 200, "resposta": originalResponse};
No painel Solicitação, você pode modificar o URL da solicitação, o método, os cabeçalhos e a carga útil.
No exemplo abaixo, qualquer caminho de solicitação /auth/login
correspondente será substituído por /auth/login2
e o método de solicitação será alterado para POST. Você pode abrir o DevTools e verificar a solicitação modificada no painel Rede.
No exemplo abaixo, o cabeçalho Content-Type
na solicitação será substituído por application/json
.
No exemplo abaixo, test: test123
será adicionado à carga útil da solicitação. Você pode abrir o DevTools e verificar o corpo da solicitação modificado no painel Rede.
chrome.declarativeNetRequest
A regra a seguir bloqueará todas as solicitações de script provenientes do domínio 'react.docschina.org' e contendo a substring 'main' na URL.
[ {"id": 1,"prioridade": 1,"ação": { "tipo": "bloco" },"condição": { "urlFilter": "principal", "domínios": ["react.docschina. org"], "resourceTypes": ["script"]} }]
A regra a seguir redirecionará todas as solicitações de script provenientes do domínio 'react.docschina.org' e contendo a substring 'main' na URL para 'new.react.docschina.org'.
[ {"id": 1,"prioridade": 1,"ação": { "type": "redirect", "redirect": {"transform": { "host": "new.react.docschina.org", "scheme": "https"} }},"condição": { "urlFilter": "main", "domains": ["react.docschina.org"], "resourceTypes": ["script"]} }]
Para mais detalhes, consulte a documentação. Documentação declarativaNetRequest
[ {// 唯一标识规则的 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”e“chrome扩展名”。 "scheme": "https", // 请求的新主机。 "host": "new.react .docschina.org", // 请求的新路径。如果为空,则清除现有路径。 "path": "", //请求的新端口。如果为空,则清除现有端口。 "port": "", // "fragment": "", // "query": "", //添加、删除或替换查询键值对。 "queryTransform": {// 要添加或替换的查询键值对的列表"addOrReplaceParams": [ {"key": "","valor": "",// 如果为verdadeiro,则仅当查询键已存在时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为false。"replaceOnly": false, }],// 要删除的查询键的列表。"removeParams": [] }, // 请求的新用户名 "username": "", //请求的新密码。 "password": "",},// 相对于扩展目录的路径。应以“/”开头。"extensionPath": "",// regexFilter的规则,使用此替换模式。在 URL 中,regexFilter 的第一个匹配项将被替换为此模式。在 regexSubstitution内部,可以使用反斜杠转义的数字(1 到 9)来插入相应的捕获组。� 指的是整个匹配文本。"regexSubstitution": "" }, // 要为请求修改的请求标头。仅当 RuleActionType por “modifyHeaders” 时才有效。 "requestHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 anexar、definir、remover "operação": "", //标头的新值。必须为 e set 操作 anexar 指定。 "value": "",} ], // 要为请求修改的响应标头。仅当 RuleActionType por “modifyHeaders” 时才有效。 "responseHeaders": [{ //要修改的标头的名称。 "header": "", // 要对标头执行的操作。 anexar、set、remove "operação": "", // 标头的新值。必须为 和 set sem anexar 指定。 "value": "",} ],},// 触发此规则的条件"condition": { // 与网络请求 URL 匹配的模式 "urlFilter": "main", // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语法。 "regexFilter": "", // 注: 只能指定 or regexFilter 中的一个 urlFilter 。 //该规则将仅匹配源自 列表 domains 的网络请求。 自 Chrome 101 起已弃用,改用 initiatorDomains "domains" : ["react.docschina.org"], // 【new】Chrome 101+ 该规则将仅匹配源自 列表 initiatorDomains的网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "initiatorDomains": ["react.docschina.org"], // 该规则将不匹配源自列表 excludeDomains 的网络请求。 自 Chrome 101 起已弃用,改用 excludeInitiatorDomains "excludedDomains" : [""], // 【new】Chrome 101+ 该规则将不匹配源自 列表 excludeInitiatorDomains的网络请求。如果列表为空或省略,则不排除任何域。这优先于 initiatorDomains 。 "excludedInitiatorDomains": [""], // "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", "csp_report", "mídia", "websocket", "webtransport", "webbundle" ou "other" "resourceTypes": ["script"], // firstParty、thirdParty "domainType": "", //规则不匹配的请求方法列表。仅应指定 e excludeRequestMethods 中的一个 requestMethods "excludedRequestMethods": "", // "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、" coloque"、"outro" //规则不匹配的资源类型列表。仅应指定 e excludeResourceTypes 中的一个 resourceTypes "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 não é regexFilter (以指定者为准)是否区分大小写。默认值为 true。 "isUrlFilterCaseSensitive": true, // 仅当域与Sobre requestDomains网络请求匹配时,该规则才会匹配网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "requestDomains": [], // 规则可以匹配的 HTTP 请求方法列表。不允许使用空列表。 "requestMethods": [], // 注意:指定 requestMethods规则条件也会排除非 HTTP(s) 请求, 而指定 excludeRequestMethods 则不会。} }]
Licença MIT.