Угловая заглушка http на Wiremock делает Option вместо Delete with 200 -> Страница продолжает onRejected - PullRequest
0 голосов
/ 19 июня 2019

У меня есть приложение AngularJS с заглушками WireMock.Есть кнопка, которая вызывает метод для / api / deleteThis, используя следующий код:

onDeleteButtonClick() {
    this._deleteThis()
      .then(() => {
          this._setState(States.SUCCESS);
      })
      .catch(() => {
        this._setState(States.FAIL);
      });
  }

и

  private _deleteThis() {
    return this.$http.delete('http://localhost:8080/api/deleteThis');
  }

Мой файл WireMock:

{
  "request" : {
    "urlPattern" : "/api/deleteThis",
    "method" : "DELETE"
  },
  "response" : {
    "status" : 200,
    "body" : "{}",
    "headers" : {
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin" : "*",
      "Access-Control-Allow-Methods" : "*",
      "Access-Control-Allow-Headers": "Content-Type"
    }
  }
}

И

{
  "request" : {
    "urlPattern" : "/api/deleteThis",
    "method" : "OPTIONS"
  },
  "response": {
    "status": 200,
    "headers": {
      "Access-Control-Allow-Origin" : "*",
      "Access-Control-Allow-Methods" : "POST, GET, OPTIONS, DELETE, PUT, PATCH",
      "Access-Control-Allow-Headers": "Content-Type"
    }
  }
}

Что я ожидаю: когда функция активируется, она должна вызвать Mock и получить 200. Поэтому Штаты должны перейти к SUCCES.Но вместо этого штаты устанавливаются на FAIL.Вкладка сети браузера (firefox) показывает, что был сделан вызов 200, но это ОПЦИЯ вместо УДАЛИТЬ.

Я прочитал много похожих вопросов, которые все относятся к CORS.Я понимаю, почему выполняется вызов OPTION, но я не понимаю, почему метод выбирает переход в onRejected, когда он получает 200 (даже если это другой тип).

Заранее спасибо за ваше время.

1 Ответ

0 голосов
/ 19 июня 2019

Для получения дополнительной информации зарегистрируйте ответ об ошибке:

onDeleteButtonClick() {
    this._deleteThis()
      .then(() => {
          this._setState(States.SUCCESS);
      })
      .catch((error) => {
        console.log(error);
        this._setState(States.FAIL);
      });
  }
...