Inglés | 简体中文
Un complemento de extensión para Chrome que modifica la respuesta de las solicitudes AJAX.
Características principales:
Intercepte y modifique la respuesta de XMLHttpRequest y obtenga solicitudes, incluidas las solicitudes de estado 404.
Solicitudes de coincidencia basadas en expresiones regulares y métodos de solicitud HTTP.
Edite los resultados de la respuesta en formato JSON o JavaScript, con soporte para la sintaxis simulada.js.
Cree fácilmente escenarios simulados en programación JavaScript accediendo a la información de solicitud original desde el parámetro de argumentos.
Nuevo panel U-Network en DevTools para interceptar rápidamente solicitudes y modificar los resultados de las respuestas.
Admite cambiar la URL de la solicitud, los encabezados y el cuerpo de la solicitud.
Admite la importación/exportación de configuraciones de reglas.
Soporte para ajustar el orden de los grupos y las reglas.
Admite la opción de imagen en imagen para abrir la página de configuración.
Admite la interceptación de páginas de configuración de red mediante declarativeNetRequest.
https://chrome.google.com/webstore/detail/ajax-interceptor-tools/kphegobalneikdjnboeiheiklpbbhncm
Vídeo: https://www.youtube.com/watch?v=HPtQO0Fyb7I
En el editor de respuestas, tiene las siguientes opciones:
Edite los resultados de la respuesta usando el formato JSON/JavaScript.
Reenvíe los resultados de la respuesta original si el editor de respuestas está borrado.
Ejemplo:
{ "status": 200, "response": "OK" }
Al utilizar el enfoque de JavaScript para editar los resultados de la respuesta, puede generar y ejecutar una función usando new Function(responseText)
y los resultados de la respuesta serán el valor de retorno de la función.
Ejemplo:
datos constantes = [];for (sea i = 0; i < 10; i++) { datos.push({ id: i });}return { "estado": 200, "respuesta": datos}
Ejemplo:
datos constantes = Mock.mock({'lista|1-10': [{'id|+1': 1}]});return { "estado": 200, "respuesta": datos}
Esto generará datos similares a los siguientes:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
Ejemplo:
let { método, carga útil, respuesta original } = argumentos[0];if (método === 'obtener') { // hacer algo}if (carga útil) { // { queryStringParameters,requestPayload } // hacer algo}regresar { "estado": 200, "respuesta": respuesta original};
En el panel Solicitud, puede modificar la URL, el método, los encabezados y la carga útil de la solicitud.
En el siguiente ejemplo, cualquier ruta de solicitud /auth/login
coincidente se reemplazará con /auth/login2
y el método de solicitud se cambiará a POST. Puede abrir DevTools y verificar la solicitud modificada en el panel Red.
En el siguiente ejemplo, el encabezado Content-Type
de la solicitud se reemplazará con application/json
.
En el siguiente ejemplo, se agregará test: test123
a la carga útil de la solicitud. Puede abrir DevTools y verificar el cuerpo de la solicitud modificado en el panel Red.
chrome.declarativeNetRequest
La siguiente regla bloqueará todas las solicitudes de script provenientes del dominio 'react.docschina.org' y que contengan la subcadena 'principal' en la URL.
[ {"id": 1,"prioridad": 1,"acción": { "tipo": "bloque" },"condición": { "urlFilter": "principal", "dominios": ["react.docschina. org"], "tipos de recursos": ["script"]} }]
La siguiente regla redirigirá todas las solicitudes de script provenientes del dominio 'react.docschina.org' y que contengan la subcadena 'principal' en la URL a 'new.react.docschina.org'.
[ {"id": 1,"prioridad": 1,"acción": { "tipo": "redireccionar", "redireccionar": {"transformar": { "host": "new.react.docschina.org", "esquema": "https"} }},"condición": { "urlFilter": "principal", "dominios": ["react.docschina.org"], "resourceTypes": ["script"]} }]
Para obtener más detalles, consulte la documentación. Documentación declarativaNetRequest
[ {// 唯一标识规则的 id。必填项,应为 >= 1"id": 1,// 规则优先级。默认值为 1。指定时,应为 >= 1"prioridad": 1,// 匹配此规则时要执行的操作"action": { // 要执行的操作的类型。 block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests "type": "redirect", // "redirect": {// 重定向网址。不允许重定向到 JavaScript 网址。"url": "",// 要执行的 URL 转换。"transform": { // 请求的新方案。允许的值是“http”,“https”,“ftp”和“chrome扩展名”。 "scheme": " https", // "ruta": "", // "puerto": "", // "fragmento": "", // "query": "", // "queryTransform": {// 要添加或替换的查询键值对的列表"addOrReplaceParams": [ {"key": "","value": "",//如果为true,则仅当查询键已存在时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为 false。"replaceOnly": false, }],// 要删除的查询键的列表。"removeParams": [] }, // 请求的新用户名 "username": "", // 请求的新密码。 "contraseña": "" ,},//相对于扩展目录的路径。应以“/”开头。"extensionPath": "",// 对于指定了 regexFilter 的规则,使用此替换模式。在 URL中,regexFilter 的第一个匹配项将被替换为此模式。在 regexSubstitution 内部,可以使用反斜杠转义的数字(1 到9)来插入相应的捕获组。� 指的是整个匹配文本。"regexSubstitution": "" }, // 要为请求修改的请求标头。仅当RuleActionType se utiliza para “modifyHeaders” "requestHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 append、set、remove "operación" : "", //标头的新值。必须为 和 set 操作 append 指定。 "valor": "",} ], // 要为请求修改的响应标头。仅当 RuleActionType 为 “modifyHeaders” 时才有效。 "responseHeaders": [{ // 要修改的标头的名称。 "header": "", // 要对标头执行的操作。 append、set、remove "operation": "", // 标头的新值。必须为 和 set 操作 append 指定。 "value": " ",} ],},// 触发此规则的条件"condition": { // 与网络请求 URL 匹配的模式 "urlFilter": "main", // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语法。 "regexFilter": "", // 注: 只能指定 or regexFilter 中的一个 urlFilter 。 //该规则将仅匹配源自 列表 dominios 的网络请求。 自 Chrome 101 起已弃用,改用 initiatorDomains "dominios" : ["react.docschina.org"], // 【nuevo】Chrome 101+ 该规则将仅匹配源自 列表 dominios iniciadores的网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "initiatorDomains" : ["react.docschina.org"], // 该规则将不匹配源自列表 dominios excluidos 的网络请求。 自 Chrome 101 起已弃用,改用 excluidosInitiatorDomains "dominiosexcluidos" : [""], // 【nuevo】Chrome 101+ 该规则将不匹配源自 列表 dominiosexcluidos "excludedInitiatorDomains": [""], // "main_frame", "sub_frame", "hoja de estilo", "script", "imagen", "fuente", "objeto", "xmlhttprequest", "ping", "csp_report", "medios", "websocket", "webtransport", "webbundle" u "otros" "resourceTypes": ["script"], // FirstParty、thirdParty "domainType": "", //规则不匹配的请求方法列表。仅应指定 和 excluidosRequestMethods 中的一个 requestMethods "excludedRequestMethods": "", // "conectar", "eliminar", "obtener", "cabeza", "opciones", "parche", "publicar" poner"、"otro" //规则不匹配的资源类型列表。仅应指定 和 excluidosResourceTypes y 中的一个 ResourceTypes "excludedResourceTypes": "", // "main_frame", "sub_frame", "hoja de estilo", "script", "imagen", "fuente", "objeto", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport "、"webbundle"、"otro" // 规则应匹配 tabs.Tab.id的列表。匹配不是源自选项卡的请求的 pestañas.TAB_ID_NONE ID. "tabIds": [], // 规则不应匹配 tabs.Tab.id 的列表。的tabs.TAB_ID_NONE ID "excludedTabIds": [], // urlFilter y regexFilter (以指定者为准)是否区分大小写。默认值为 true。 "isUrlFilterCaseSensitive": true, // 仅当域与 列表中的 requestDomains网络请求匹配时,该规则才会匹配网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用空列表。 "requestDomains": [], // 规则可以匹配的 HTTP 请求方法列表。不允许使用空列表。 "requestMethods": [], // 注意:指定 requestMethods规则条件也会排除非 HTTP(s) 请求,而指定 excluidosRequestMethods 则不会。} }]
Licencia MIT.