Повторные запросы клиента Aurelia Fetch ожидаются: 100-продолжение - PullRequest
0 голосов
/ 03 октября 2019

У меня обнаружен переменный вариант использования в некоторых клиентах с небрежным веб-прокси, и, согласно W3, я обнаружил, что:

Если клиент HTTP / 1.1 отправляет запрос, который включаеттело запроса, но которое не включает поле заголовка запроса Expect с ожиданием «100-continue», и если клиент не подключен напрямую к исходному серверу HTTP / 1.1, и если клиент видит соединение закрытым до получения какого-либоСтатус от сервера, клиент ДОЛЖЕН повторить запрос.

Итак, я пытался добавить заголовок Expect: 100-continue к свойствам заголовков по умолчанию, чтобы избежать повторения любого процесса в будущем. но я заметил это, или плагин или браузер удаляет его из заголовка запроса.

Я уже пробовал один из этих случаев

    this.configure(config => {
  config
    .withBaseUrl(baseURL)
    .withDefaults({
      credentials: 'same-origin',
      headers: {
        Accept: 'application/json',
        'X-Requested-With': 'Fetch',
        'accept-enconding': 'gzip',
        'Expect': '100-continue',
        /*global __VERSION__ */
        'X-WebApp-Version': __VERSION__
      }
    })
    .withInterceptor({
      request(request) {
        let token = authService.getToken();
        if (token) {
          request.headers.set('Authorization', `Bearer ${token}`);
        }
        return request;
      }
    });
});

и

    this.configure(config => {
  config
    .withBaseUrl(baseURL)
    .withDefaults({
      credentials: 'same-origin',
      headers: {
        Accept: 'application/json',
        'X-Requested-With': 'Fetch',
        'accept-enconding': 'gzip',
        /*global __VERSION__ */
        'X-WebApp-Version': __VERSION__
      }
    })
    .withInterceptor({
      request(request) {
        let token = authService.getToken();
        if (token) {
          request.headers.set('Authorization', `Bearer ${token}`);
        }

        if(request.method === 'POST') {
          request.headers.set('Expect', '100-continue');
        }

        return request;
      }
    });
});

Кто-нибудь когда-нибудь пытался избежать повторения запросов по умолчанию? Можно ли настроить повторный перехватчик в плагине aurelia-fetch-client?

Спасибо за вашу поддержку

...