Логические данные передаются как пустые в запросе Angular / HTTP POST

#angular #http-post

Вопрос:

Я пытаюсь опубликовать некоторые данные в API, и мои логические данные продолжают отображаться как пустые. У кого-нибудь есть какие-либо мысли относительно того, что может быть причиной этого?

 const notifications: Array<Notification> = [
    {
        id: "all",
        title: "All",
        isActive: false
    }
 ];
 

Вот мои interface данные для:

 export interface Notification {
    id: string,
    title: string,
    isActive: boolean
}
 

Теперь, когда я пытаюсь передать эти данные через HTTP-запрос POST, они отображаются как:

 notifications: [
    {
        "id": "all",
        "title": "All",
        "isActive": ""
    }
 ];
 

Я замечаю, что isActive свойство пусто, когда я проверяю http.post() вызов через Safari/Chrome, что вызывает проблемы в моем API, поскольку данные кажутся пустыми по сравнению с логическим значением.

Вот как я передаю данные в API:

 this.http.post('/api/', {notifications: notifications}).subscribe((res:any) => {
    console.log(res);
}
 

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

1. каков ваш код при передаче данных в api?

2. @jaysurya — Я обновил исходный вопрос этим примером.

3. этот код не изменит ваши данные. Вы уверены, что объект уведомлений в приведенном выше фрагменте соответствует ожиданиям?

4. Я добавляю a Content-Type: application/json ко всем http-запросам через перехватчик, это все, о чем я могу думать.

5. ложь может быть преобразована в «ложь», но не в «». Должен быть какой-то другой код, который вызывает это. отладьте его с помощью console.log

Ответ №1:

Попробуй это. Перед отправкой преобразуйте логическое значение в строку, например isActive.toString()

Поэтому, прежде чем создавать api, вы могли бы сделать

 notifications = {...notifications, isActive: notifications.isActive.toString() };