Я использую Ionic3 и Angular 5 и пытаюсь отправить данные json с клиента на сервер через http.post.
Но по неизвестной причине, когда я отправляю почтовый запрос вручную при нажатии кнопки, почтовый запрос будет вызываться автоматически каждые несколько минут ... Но я не хочу этого. Клиент должен отправить ТОЛЬКО ОДИН почтовый запрос.
Кто-нибудь может объяснить, в чем проблема?
---- Мой класс звонков
import { ConnectionServiceProvider } from '../../providers/connection-service/connection-service';
@IonicPage()
@Component({
selector: 'page-result-modal',
templateUrl: 'result-modal.html',
})
sendGameResults() {
this.serverConnection.sendGameResult(result).subscribe(data => {
console.info(result);
}, error => {
console.info(error);
});
}
}
---- My ConnectionService
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core';
@Injectable()
export class ConnectionServiceProvider {
mainUrl = "http://127.0.0.1:8080";
constructor(public http: HttpClient) {}
sendGameResult(result) {
var data = JSON.stringify(result);
return this.http.post(this.mainUrl + '/sendgameresult', data, { headers: {
'Content-Type': 'application/json' } }).map(response => {
return response;
});
}
----- HTML
<ion-row nowrap no-padding>
<button class = "send-game-results" (click) = "sendGameResults()" ion-
button full>Senden</button>
</ion-row>
Привет, я добавил соответствующую информацию. Весь html и класс слишком велики, чтобы опубликовать их полностью, но я не использую никаких других провайдеров или http-постов там.
Я заметил пару опечаток, например, функцию службы, называемую sendGameResult
, и вы пытаетесь вызвать this.serverConnection.sendResult
, но я не могу воспроизвести проблему. Не могли бы вы создать репродукцию StackBlitz, пожалуйста?
Извините, это была проблема с копированием и вставкой. Что вы имеете в виду под StackBlitz?
StackBlitz - это веб-сайт, который позволяет запускать ионный код. Когда я добавил код сверху, я не смог воспроизвести проблему. Можете ли вы создать тот, который воспроизводит проблему, сохранить его и поделиться URL-адресом? stackblitz.com/fork/ionic
Я не уверен, но вы также можете создать переменную и вызывать эту переменную, если у вас все получится, например:
public canelReq = this.yourService.unsubscribe ();
И затем, когда вы добьетесь успеха, просто вызовите этот метод
succsess => this.cancelReq();
Не могли бы вы добавить полный вызывающий класс и HTML-шаблон, пожалуйста? Нужно увидеть, как вызывается этот блок кода