У меня есть приложение 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 (даже если это другой тип).
Заранее спасибо за ваше время.