Chrome DevTools утверждает сетевые запросы перед выполнением - PullRequest
0 голосов
/ 27 февраля 2019

Я ищу способ в Chrome DevTools (или любой другой эквивалент) для управления HTTP-запросами, выполняемыми моим веб-приложением:

Я хочу утвердить HTTP-запросы перед их выполнением или разрешить имнеожиданный сбой (присвоите ему статус 500 или что-то в этом роде).

ИСПОЛЬЗОВАНИЕ ПРИМЕР : тестирование неожиданного поведения

Кто-нибудь знает способ достижения этого.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Вы можете использовать Запрос Расширение Chrome для перенаправления, отмены, блокировки, изменения заголовков и ... запросов.

enter image description here

Чтобы утвердить запросы перед их выполнением, например, для запросов AJAX, создайте правило перенаправления и укажите его для статического файла JSON или другого сценария.

Чтобы заблокировать запрос, используйте функцию отмены запроса и установите пользовательский шаблон.

0 голосов
/ 07 марта 2019

Я вижу 2 возможных решения для достижения этой цели на стороне клиента:

  1. Используйте панель блокировки запросов из ящика (откройте Chrome DevTools -> Esc -> '... '-> Блокировка запроса enter image description here Это полностью готовое решение для большинства случаев автономного использования.

  2. ИспользованиеРаботник службы. В основном это способ прокси-запросов и индивидуальный ответ (например, ответ с 500-ой). Вы можете включить / отключить такую ​​функцию отладки с помощью фрагментов Chrome Devtools (Open Chrome DevTools -> Sources-> Snippets), поскольку вы не хотите, чтобы ваши запросы не выполнялись постоянно:)

Сначала вам нужно зарегистрировать ваш сервисный работник следующим образом:

if('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/path-to-service-worker.js').then(function(registration) {
    // registration successful
  }).catch(function(err) {
    // registration failed
  });
}

После этого перезагрузите браузер (или установите ваш сервисный работник в DevTools -> Приложение -> Сервисные работники), чтобы ваш service-worker.js был активен, мог прослушивать событие «fetch» ​​и прокси-запросы на этот домен, как этот:

self.addEventListener('fetch', function(event) {
  // this will set a breakpoint in chrome devtools, allowing you to manually edit the response
  debugger; 
  // alternatively you could reponse with an error response like this:
  event.respondWith(
    new Response(null, {
      status: 500
    })
  );
});

Sidenote: Из-за ограничений безопасности в браузере сервис-работники работают только через https и localhost.

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/API/Response/Response https://developers.google.com/web/fundamentals/primers/service-workers/

...