Angular HTTP Post不会触发

时间:2018-04-26 13:27:26

标签: angular http http-post

我无法看到让这个HTTP Post工作。我是角度4的新手,这是我在帖子中的第一次尝试。我可以在console.log中检查URL并验证它是否正确。我也可以在Fiddler中手动使用POST,它可以正常工作,而不是来自应用程序。

当我在应用程序的这个动作中观看小提琴手时,我没有看到任何帖子的尝试。

此网址不需要正文,因此我不确定这是否有所作为。

组件

getSanitationTasks() {
    this.sanitationProvider.getSanitationTasks().subscribe(location => this.sanitationTasks = location)
  }

  completeSanitationTask(loadnumber) {
    this.sanitationProvider.completeSanitationTask(loadnumber).subscribe((res) => {
      console.log("complete executed"); this.getSanitationTasks(), error => { console.log(error) };

    });

  }

服务

 completeSanitationTask(loadnumber) {

    console.log(this.DatabaseName, this.EmployeeNumber, loadnumber);

    this.completeSanitationTaskURL = "http://xxxx-dev.dotfoods.com/api/" + this.DatabaseName + "/v1/sanitation/tasks?employeeNumber=" + this.EmployeeNumber + "&loadNumber=" + loadnumber;

    return this.http.post(this.completeSanitationTaskURL, []).map(res => res.json());


  }

HTML

<ion-content padding>
  <ion-grid>
    <ion-row style="background: darkblue; color: white;">
      <ion-col col-md-3>
        <ion-label>Door Number</ion-label>
      </ion-col>
      <ion-col col-md-3>
        <ion-label>Load Number</ion-label>
      </ion-col>
      <ion-col col-md-3>
        <ion-label>Trailer Number</ion-label>
      </ion-col>
      <ion-col col-md-3>

      </ion-col>
    </ion-row>
    <ion-row style="border-bottom: solid; border-width: 1px" *ngFor="let task of sanitationTasks;let index = index;trackBy:trackByIndex;">
      <ion-col col-md-3>
        <ion-label>{{task.DoorNumber}}</ion-label>
      </ion-col>
      <ion-col col-md-3>
        <ion-label>{{task.LoadNumber}}</ion-label>
      </ion-col>
      <ion-col col-md-3>
        <ion-label>{{task.TrailerNumber}}</ion-label>
      </ion-col>
      <ion-col col-md-3>
        <button ion-button (click)="completeSanitationTask(task.LoadNumber)">Complete</button>
      </ion-col>
    </ion-row>
  </ion-grid>

</ion-content>

2 个答案:

答案 0 :(得分:0)

订阅observable返回。

completeSanitationTask(loadnumber) {
    this.sanitationProvider.completeSanitationTask(loadnumber).subscribe((res)=>{
   console.log(res); 
});

  }

答案 1 :(得分:0)

要启动post http调用,您需要订阅该函数返回的configure.ac

  

HeroesComponent通过订阅此服务方法返回的Observable来启动实际的POST操作。

this documentation中阅读更多内容。

Observable