Запрос Post возвращает код состояния 500 Угловой запрос в серверную часть spring boot

#java #angular #spring #post #rest

#java #угловой #spring #Публикация #отдых

Вопрос:

получение ошибки кода состояния 500 при использовании следующего запроса

 createPost(postPayload: CreatePostPayload): Observable<any> {
    return this.http.post('http://localhost:8080/api/posts/', postPayload);
  }
 

запрос отлично работает на postman.

Ответ №1:

Попробуйте использовать HttpClient. Проверьте, что вы разместили () тело и заголовки

Ответ №2:

  createPost(postPayload: CreatePostPayload): Observable<any> {
        const headers = new HttpHeaders().set('Content-Type', 'application/json');
        return this.http.post('http://localhost:8080/api/posts', postPayload, {    
            observe: 'response',    
            headers: headers           
        });
      }
 

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

1. когда я попробовал ваш код, ошибка переключилась с 500 на 404

2. Я думаю, что я нашел реальную проблему в серверной части, но я не знаю, как это исправить, похоже, по какой-то причине возникает ошибка, при которой текущий пользователь получает назначение post. java.base/java.lang.String cannot be cast to org.springframework.security.core.userdetails.User

Ответ №3:

Итак, я, наконец, смог решить эту проблему. Дело в том, что токен аутентификации не был включен в заголовок запроса post, поэтому он отлично работает на postman. Благодаря Муругану и Ахмеду, которые намекнули на проверку заголовков, мне удалось решить это следующим образом

   createPost(postPayload: CreatePostPayload): Observable<any> {

    const headers = new HttpHeaders().set("Authorization", this.localStorage.retrieve('authenticationToken'));

    return this.http.post('http://localhost:8080/api/posts/', postPayload, {    
        observe: 'response',    
        headers: headers           
    });
  }