Запрос Axios всегда отправляет обратно 200 - PullRequest
0 голосов
/ 06 сентября 2018

Я делаю очень простой запрос PUT (см. Ниже.) По какой-то причине, независимо от того, какой код ответа я отправляю обратно с моего экспресс-сервера, axios видит 200. В моих журналах экспресс-проверки он показывает правильный ответ:

PUT /v1/org/password/reset 404 339.841 ms - 71

Это строка кода, отправляющая серверную часть ответа:

res.json({ message: 'Could not find user with that token or the token expired.' }).status(404);

Я знаю, что эта строка запускается, потому что тело, зарегистрированное в консоли браузера, показывает то же самое сообщение. Смотрите скриншот. enter image description here

Единственное, о чем я могу подумать - браузер кэширует ответ?

    axios.put(`http://localhost:3000/v1/org/password/reset`, {
     password: "example",
     token: "19u8e8j2039d3d32blahblah"
   })
 .then(function (response) {
   if(response.status == 200){
       console.log("success",response)
     //handle success here
   }
 })
 .catch(function (error) {
   console.log("error", error);
   //handle error here
 });

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

попробуйте сначала установить статус так:

res.status(404).json({ message: 'Could not find user with that token or the token expired.' });
0 голосов
/ 06 сентября 2018

Проблема на стороне сервера. Попробуйте вернуть ответ следующим образом:

res.status(404).json({ message: 'Could not find user with that token or the token expired.' });

Согласно документации Express 4 - https://expressjs.com/en/4x/api.html

Функции промежуточного программного обеспечения выполняются последовательно, поэтому порядок Включение промежуточного программного обеспечения важно.

Поэтому, когда вы вызываете метод send, Express записывает в ответ содержимое тела http, поэтому сначала вам нужно заполнить заголовки.

...