الإنجليزية | 简体中文
مكون إضافي لمتصفح Chrome يعدل استجابة طلبات AJAX.
الميزات الرئيسية:
اعتراض وتعديل استجابة XMLHttpRequest وطلبات الجلب، بما في ذلك طلبات الحالة 404.
مطابقة الطلبات بناءً على التعبيرات العادية وطرق طلب HTTP.
تحرير نتائج الاستجابة بتنسيق JSON أو JavaScript، مع دعم بناء جملة mock.js.
قم بإنشاء سيناريوهات وهمية بسهولة في برمجة JavaScript عن طريق الوصول إلى معلومات الطلب الأصلية من معلمة الوسائط.
لوحة U-Network جديدة في DevTools لاعتراض الطلبات بسرعة وتعديل نتائج الاستجابة.
دعم تغيير عنوان URL للطلب ورؤوس الطلب والنص.
دعم استيراد/تصدير تكوينات القاعدة.
دعم تعديل ترتيب المجموعات والقواعد.
دعم خيار صورة داخل صورة لفتح صفحة التكوين.
دعم اعتراض صفحات تكوين الشبكة باستخدام 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)
وستكون نتائج الاستجابة هي القيمة المرجعة للوظيفة.
مثال:
بيانات ثابتة = [];for (let i = 0; i < 10; i++) { data.push({ المعرف: i });}return { "الحالة": 200، "الاستجابة": البيانات}
مثال:
بيانات ثابتة = Mock.mock({'list|1-10': [{'id|+1': 1}]});return { "الحالة": 200، "الاستجابة": البيانات}
سيؤدي هذا إلى إنشاء بيانات مشابهة لما يلي:
// ==> { "list": [ { "id": 1 }, { "id": 2 }, { "id": 3 } ] }
مثال:
Let { الطريقة، الحمولة، originalResponse } = الوسيطات[0];if (method === 'get') { // افعل شيئًا}if (payload) { // { queryStringParameters،requestPayload } // افعل شيئًا}العودة { "الحالة": 200، "الاستجابة": originalResponse};
في لوحة الطلب، يمكنك تعديل عنوان URL للطلب والطريقة والرؤوس والحمولة.
في المثال أدناه، سيتم استبدال أي مسار طلب مطابق /auth/login
بـ /auth/login2
، وسيتم تغيير طريقة الطلب إلى POST. يمكنك فتح DevTools والتحقق من الطلب المعدل في لوحة الشبكة.
في المثال أدناه، سيتم استبدال رأس Content-Type
في الطلب بـ application/json
.
في المثال أدناه، سيتم إضافة test: test123
إلى حمولة الطلب. يمكنك فتح DevTools والتحقق من نص الطلب المعدل في لوحة الشبكة.
chrome.declarativeNetRequest
ستحظر القاعدة التالية جميع طلبات البرامج النصية الواردة من المجال "react.docschina.org" والتي تحتوي على السلسلة الفرعية "الرئيسية" في عنوان URL.
[ {"id" : 1,"priority": 1,"action" : { "type" : "block" },"condition" : { "urlFilter" : "main", "domains" : ["react.docschina. org"], "resourceTypes" : ["script"]} }]
ستعيد القاعدة التالية توجيه جميع طلبات البرامج النصية الواردة من المجال "react.docschina.org" والتي تحتوي على السلسلة الفرعية "الرئيسية" في عنوان URL إلى "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"]} }]
لمزيد من التفاصيل، يرجى الرجوع إلى الوثائق. توثيق NetRequest التعريفي
[ {// رقم المعرف. 必填 项، 应为 >= 1"id": 1،// رقم المعرف . 1,// قم بإعادة التوجيه إلى "action": { // قم بإعادة التوجيه. block、redirect、allow、upgradeScheme、modifyHeaders、allowAllRequests "type": "redirect"، // "إعادة التوجيه": {// قم بالتسجيل في جافا سكريبت.网址."url": ""،// قم بزيارة عنوان URL."transform": { // قم بالتحويل إلى "http" و"https" و"ftp" و"chrome 展名" . "المخطط": "https"، // "مضيف": "new.react.docschina.org"، // يرجى الاتصال بنا. نبذه عنا، 则清除现有路径.则清除现有端口. "port": ""، // "جزء": ""، // "query": ""، // "queryTransform": {// قم باختيار ما تريد معرفته من خلال "addOrReplaceParams": [ {"key": ""،"value": ""،// شكرا جزيلا صحيح، إذا لم تكن متأكدًا من ذلك، فقد يكون لديك خطأ. false, }],// تم حذفها."removeParams": [] }, // تم حذفها "اسم المستخدم": ""، // تم حذفها. "password": "" ,},//相对于扩展目录的路径.应以“/”开头.“extensionPath“: “”،// قم باختيار regexFilter 的规则،使用此替换模式.在 URL الآن، يمكن استخدام regexFilter للحصول على بديل regexSubstitution (1 到) 9)اطلب مني أن أطلب منك ذلك. RuleActionType يحتوي على “modifyHeaders”. "operation": ""، // تعيين قيمة الإلحاق لـ . "value": ""،} ], // قم بإضافة RuleActionType إلى "modifyHeaders". "responseHeaders": [{ // "header": ""، // إلحاق البيانات، تعيين، إزالة "العملية": ""، // حذف جميع العمليات، تعيين، تعيين، إزالة "العملية": ""، // حذف جميع العمليات إلحاق 指定. "القيمة": ""،} ],},// انقر على الرابط "شرط": { // رابط عنوان URL الخاص بموقع "urlFilter": "الرئيسي"، // رابط عنوان URL الخاص به "regexFilter": ""، // الخيار: regexFilter أو regexFilter urlFilter . // قم بتنزيل النطاقات التي تم إنشاؤها بواسطة Chrome 101، قم بتشغيل initiatorDomains "domains" : ["react.docschina.org"], // 【جديد】Chrome 101+ 该规则将仅匹配源自 列表 البادئالمجالات لا داعي للقلق بشأن هذه المشكلة. "initiatorDomains" : ["react.docschina.org"]، // قم بزيارة النطاق المستبعد للنطاقات المستبعدة. انتقل إلى Chrome 101، وقم بإلغاء تحديد المجالات المستثناة "excludedDomains" : [""], // 【جديد】Chrome 101+ قم بتنزيل النطاقات المستبعدة تم إنشاء نطاقات جديدة. تم إنشاء نطاقات جديدة. "main_frame"، "sub_frame"، "stylesheet"، "script"، "image"، "font"، "object"، "xmlhttprequest"، "ping"، "csp_report"، "الوسائط"، "websocket"، أو "webtransport"، أو "webbundle"، أو "resourceTypes" "أخرى": ["script"]، // "domainType": ""، // طرق الطلب المستبعدة وطرق الطلب المستبعدة "excludedRequestMethods": ""، // "connect"、"delete"、"get"、"head"、"options"、"patch" 、"post"、" ضع"、"أخرى" // تم تحديد أنواع الموارد وأنواع الموارد المستبعدة وأنواع الموارد المستبعدة. . "main_frame、"sub_frame、"stylesheet"、"script"、"image"、"font"、"object"、"xmlhttprequest"、"ping"、"csp_report"、"media"、"websocket"、"webtransport "、"webbundle"、"other" // تحديد علامات التبويب.Tab.id قم بإلغاء تحديد علامات التبويب.TAB_ID_NONE. معرف. tabs.TAB_ID_NONE ID غير موجود. "excludedTabIds": []، // urlFilter أو regexFilter. (تم التحقق من ذلك) من خلال التحقق من صحة الطلب. لا داعي للقلق بشأن هذه المشكلة. ، قد يكون الأمر كذلك بالنسبة لك. "requestDomains": [], // طلب اتصال HTTP. لا داعي للقلق بشأن استخدام HTTP(s) أو الأساليب المستبعدة.} }]
رخصة معهد ماساتشوستس للتكنولوجيا.