영어 | 简体中文
AJAX 요청의 응답을 수정하는 Chrome용 확장 플러그인입니다.
주요 특징:
XMLHttpRequest의 응답을 가로채서 수정하고 404 상태 요청을 포함한 요청을 가져옵니다.
정규식 및 HTTP 요청 방법을 기반으로 요청을 일치시킵니다.
mock.js 구문을 지원하여 JSON 또는 JavaScript 형식으로 응답 결과를 편집합니다.
인수 매개변수에서 원본 요청 정보에 액세스하여 JavaScript 프로그래밍에서 모의 시나리오를 쉽게 만들 수 있습니다.
요청을 빠르게 가로채고 응답 결과를 수정하기 위한 DevTools의 새로운 U-Network 패널.
요청 URL, 요청 헤더 및 본문 변경을 지원합니다.
규칙 구성 가져오기/내보내기를 지원합니다.
그룹 및 규칙의 순서 조정을 지원합니다.
구성 페이지를 열 때 PIP(picture-in-picture) 옵션을 지원합니다.
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 데이터 = [];for (let i = 0; i < 10; i++) { data.push({ id: i });}return { "상태": 200, "응답": 데이터}
예:
const data = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { "상태": 200, "응답": 데이터}
그러면 다음과 유사한 데이터가 생성됩니다.
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
예:
let { 메소드, 페이로드, OriginalResponse } = 인수[0];if (메소드 === 'get') { // 뭔가를 합니다}if (페이로드) { // { queryStringParameters,requestPayload } // 뭔가를 하세요}return { "상태": 200, "응답": 원본응답};
요청 패널에서는 요청 URL, 메소드, 헤더 및 페이로드를 수정할 수 있습니다.
아래 예에서는 일치하는 모든 /auth/login
요청 경로가 /auth/login2
로 바뀌고 요청 방법이 POST로 변경됩니다. DevTools를 열고 네트워크 패널에서 수정된 요청을 확인할 수 있습니다.
아래 예에서는 요청의 Content-Type
헤더가 application/json
으로 대체됩니다.
아래 예에서는 test: test123
요청 페이로드에 추가됩니다. DevTools를 열고 네트워크 패널에서 수정된 요청 본문을 확인할 수 있습니다.
chrome.declarativeNetRequest
를 통해 지정된 선언적 규칙을 사용하여 네트워크 요청 차단 또는 수정 지원 다음 규칙은 'react.docschina.org' 도메인에서 들어오고 URL에 'main' 하위 문자열을 포함하는 모든 스크립트 요청을 차단합니다.
[ {"id" : 1,"우선순위": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "resourceTypes" : ["스크립트"]} }]
다음 규칙은 'react.docschina.org' 도메인에서 오고 URL에 'main' 하위 문자열을 포함하는 모든 스크립트 요청을 'new.react.docschina.org'로 리디렉션합니다.
[ {"id": 1,"우선순위": 1,"action": { "type": "redirect", "redirect": {"transform": { "host": "new.react.docschina.org", "scheme": "https"} }},"condition": { "urlFilter": "main", "domains" : ["react.docschina.org"], "resourceTypes": ["스크립트"]} }]
자세한 내용은 설명서를 참조하세요. declarativeNetRequest 문서
[ {// 唯一标识规则의 id.必填项,应为 >= 1"id": 1,// 规则优先级。默认值为 1。指定时,应为 >= 1"priority": 1,/ /匹配此规则时要执行的操작품"action": { // 要执行的操작업적类型。 block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests "type": "redirect", //描述应如何执行중정向。仅对중대정向规则有效。 "리디렉션": {//중정向网址。不允许중중정向到JavaScript 网址。"url": "",// 要执行的 URL转换。"변환": { // 请求적 새로운 방법입니다.允许的值是“http”,“https”,“ftp”및“chrome扩 확장 이름”。 "scheme": "https", // 请求적 새로운 주机。 "호스트": "new.react.docschina.org", //请求的新路径。如果为空,则清除现有路径。 "path": "", // 请求的新路径。如果为空,则清除现有端口。 "port": "", //请求 的 新文段。应为空,在这种情况下,将清除现段;或应以“#”开头。 "fragment": "", //请求的新查询。应为空,在这种情况下,将清除现有查询;或者应该以“?”开头。 "쿼리": "", //添加、删除或替换查询键值对。 "queryTransform": {// 要添加或替换的查询键值对的列表"addOrReplaceParams": [ {"key": "","value": "",//如果为 사실,则仅当查询键已存재时,才会替换查询键。否则,如果缺少密钥,也会添加密钥。默认为false。"replaceOnly": false, }],// 要删除的查询键的列表。"removeParams": [] }, // 请求적 새로운 용법명 "username": "", // 请求的新密码。 "비밀번호": "",},// 상对于扩展目录的路径。应以“/”开头。"extensionPath": "",// 对于指定了 regexFilter 的规则,使用此替换模式。URL 中,regexFilter的第一个匹配项将被替换为此模式。정규식교체에서 内部,可以使用反斜杠转义的数字 (1 到 9) 来插入此模式。指的是整个匹配文本。"regexSubstitution": "" }, // 要为请求修改的请求标头。仅当 RuleActionType 为 “modifyHeaders” 时才有效。 "requestHeaders": [{ //要修改的标头의 이름입니다. "header": "", // 要对标头执行적操작입니다. 추가, 설정, 제거 "option": "", // 标头的新值。必须为 와 set 操작 추가 指정。 "value": "",} ], // 要为请求修改的响应标头。仅当 RuleActionType 为 “modifyHeaders” 时才有效。 "responseHeaders": [{ // 要修改的标头적명칭。 "header": "", //要对标头执行的操작품。 추가、설정、제거 "작업": "", // 标头的新值。必须为 와 set 操작 추가 指定。 "value": "",} ],},// 触发此规则的条件"condition": { // 与网络请求 URL 匹配的模式 "urlFilter": "main", // 与网络请求 URL匹配的正则表达式。这遵循 RE2 语법。 "regexFilter": "", // 注: 只能指定 또는 regexFilter 中的一个 urlFilter 。 // 该规则将仅匹配源自列表 domains 的网络请求。 에서 Chrome 101을 사용하여 initiatorDomains "domains" : ["react.docschina.org"], // 【new】Chrome 101+ 该规则将仅匹配源自 列表initiatorDomains 的网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。不允许使用 空列表。 "initiatorDomains": ["react.docschina.org"], // 该规则将不匹配源自列表 listedDomains 的网络请求. 에서 Chrome 101 起已弃用, 改用 제외InitiatorDomains "excludedDomains" : [""], // 【신규】 크롬 101+该规则将不匹配源自 列表 제외InitiatorDomains 는 网络请求입니다. "excludedInitiatorDomains": [""], // 规则可以匹配的资源类型列表。不允许使사용공列表。 "main_frame", "sub_frame", "stylesheet", "script", "image", "font", " 객체", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport", "webbundle" 또는 "other" "resourceTypes": ["script"], //指定网络请求求是其来源域的第一方还是第三方。如果省略,则接受所有请求。 firstParty、thirdParty "domainType": "", //规则不匹配的请求方法列表。仅应指定 과 제외된RequestMethods 중 하나는 requestMethods 입니다. // "연결", "삭제", "가져오기", "헤드", "옵션", "패치", "게시", "넣기", "기타" // 规则不匹配的资源类型列表。仅应指定와 제외ResourceTypes 중 하나는 자원 유형입니다. 。如果未指定它们,则将阻止除“main_frame” 은 외부에 존재하지 않습니다. 。 "excludedResourceTypes": "", // "main_frame", "sub_frame", "stylesheet", "script", "image", "font", "object", "xmlhttprequest", "ping", "csp_report", "media", "websocket", "webtransport" "、"webbundle"、"other" // 规则应匹配 tabs.Tab.id的列表。匹配不是源自选项卡的请求的탭입니다.TAB_ID_NONE ID입니다.规则不应匹配 tabs.Tab.id 的列表。的 tabs.TAB_ID_NONE ID 排除不是源自选项卡的请求。仅会话范围的规则受支持"excludedTabIds": [], // urlFilter 或 regexFilter (以指정자为准)是否区分大小写。默认值为 true。 "isUrlFilterCaseSensitive": true, // 仅当域与 列表中的요청도메인网络请求匹配时,该规则才会匹配网络请求。如果省略该列表,则该规则将应用于来自所有域的请求。 不允许使用 空列表。 "requestDomains": [], // 规则可以匹配的 HTTP 请求方法列表。不允许使사용공列表。 "requestMethods": [], // 참고: 注意:指定 requestMethods规则条件也会排除不 HTTP(s) 请求,而指定 listedRequestMethods 则不会。} }]
MIT 라이센스.