Угловой 7 Http Post запрос — подписаться только на варианты ответа, а не на фактический ответ

#angular #http #post #angular7 #preflight

#угловой #http #Публикация #angular7 #предполетный

Вопрос:

Я отправляю post-запрос для загрузки файла из моего интерфейса angular 7. Сетевая консоль в Chrome показывает, что сначала отправляется запрос OPTIONS, прежде чем отправлять мой post-запрос. Я также вижу правильный ответ, который он получил на мой post-запрос. Моя проблема в том, что запрос ПАРАМЕТРОВ возвращает ошибку 204 No Content и, похоже, «убивает» событие подписки. Запрос post upload отправляет обратно ключ в теле ответа, к которому мне нужно получить доступ, и поэтому у меня есть событие подписки на мой post запрос, который должен распечатать ответ, но все, что я получаю в консоли, это «ошибка — Ок».

 this.http.post<any>(url this.currentTokenPublicId,formData,{observe:'response'}).subscribe(res=>{
      console.log("here");
      console.log(res);
      console.log(res.headers);
      console.log(res.body);
    },(err)=>console.log("error = " err));
  

** ОБНОВИТЬ:
Похоже, есть некоторая путаница, основанная на ответе, который я получил до сих пор. POST-запрос успешно завершен. Проблема в том, что я не получаю от него ответа. Все, что я получаю, это сообщение «ошибка = Ок», потому что полученный ответ возвращается как ошибка, а не ответ (следовательно, «здесь» не печатается). Просматривая сетевую консоль в Chrome, она показывает, что мой post-запрос успешно завершен и возвращен нужный мне ключ. Я просто не могу его получить, поскольку сообщение о ПАРАМЕТРАХ предполетной проверки, похоже, вызывает распечатку с ошибкой, а затем больше ничего не печатается.

Комментарии:

1. Huh. 204 не является статусом ошибки. Почти каждый раз, когда я получаю ответ «в инструментах разработки возвращается нормально, но Angular ведет себя так, как будто это не так» , ошибка возникает, когда что-то не так с заголовками. Например: фактическое содержимое ответа не соответствует «content-type» ответа, или тип ответа не соответствует запросу «accept».

2. post-запрос успешно завершен. Проблема в том, что я не получаю от него ответа. Все, что я получаю, это сообщение «ошибка = Ок», потому что полученный ответ возвращается как ошибка, а не как ответ. Просматривая сетевую консоль в Chrome, она показывает, что мой post-запрос успешно завершен и возвращен нужный мне ключ. Я просто не могу его получить, поскольку сообщение о ПАРАМЕТРАХ предполетной проверки, похоже, вызывает распечатку с ошибкой, а затем больше ничего не печатается.

3. @user7856951 было ли какое-либо решение этой проблемы?