Я настраиваю http-запрос к локальному API для хранения новой бутылки вина.Метод get работает нормально, но пост просто ничего не делает.Что-то не хватает в моей просьбе?И почему вы думаете, что вызов метода post хранит молчание?
Мое исследование не помогло, единственная проблема similair, которую я мог найти, это эта , но так и не получила ответа.Определение типа this.httpClient.post<WineBatch>
не помогло.
import { Storage } from '@ionic/storage'
import { WineBatch } from '../_models/WineBatch'
import { Injectable } from '@angular/core'
import { HttpClient } from '@angular/common/http'
import { ObservableResult } from '../_models/ObservableResult'
@Injectable()
export class WineBatchProvider {
private storage: Storage
private storageKey: string
private apiUrl: string
constructor(storage: Storage, private httpClient: HttpClient) {
this.storage = storage
this.storageKey = "batches"
this.apiUrl = 'http://192.168.0.171:8080/api/qns/'
}
//#region API
public refreshWineBatches() {
this.httpClient.get(this.apiUrl + 'wines').subscribe(result => {
let observableResult = new ObservableResult(result)
this.setWineBatches(observableResult.data)
})
}
public addWineBatch(data: any) {
console.log("Sending data")
this.httpClient.post(this.apiUrl + 'wines', { data: 'This should cause an error !' }).subscribe(res => {
console.log("got response !")
}, error => {
console.error("error")
})
console.log("Data sent !")
}
//#endregion
}
Этот код должен как минимум выдавать ошибку.Оба console.log вызываются, но я не получаю ошибки, даже если я жду таймаута.На стороне сервера нет ни ошибок, ни следов в журнале (который регистрирует любой вызов API).Такое ощущение, что this.httpClient.post()
просто почему-то игнорируется.
Редактировать
Как спросил Сергей Мелл, вот скриншот вкладка сети (пока не разрешено иметь изображение в моем посте).Запрос xhr немедленно отменяется, и это вызывает столько же ошибок, сколько и исключений.То, как метод вызывается, в данном случае не очень полезно, но этот вопрос , вероятно, таков.
Кажется, что angular игнорирует событие abort.Вот источники в Angular: https://github.com/angular/angular/blob/5.0.1/packages/common/http/src/xhr.ts Возвращаемое Observable уведомляет подписчиков, если запрос отменен.
Но теперь мой вопрос: Почему этот запрос отменяется?