【问题标题】:http.delete works fine on Postman but not on Angular 4/Ionic 3 apphttp.delete 在 Postman 上运行良好,但在 Angular 4/Ionic 3 应用程序上运行良好
【发布时间】:2020-05-02 17:07:15
【问题描述】:

我是 Angular 2/Spring 启动堆栈的初学者,所以请多多包涵。

我创建了一个http.delete 方法来删​​除用户选择的特定行,该方法会提示警报以验证删除,我的请求实际上在 Postman 上运行良好,因为我可以根据完全给出的参数删除选定的行数据库,但不在我的前端应用程序中,所以我的 API 可以正常工作。我什至检查了订阅,因为 Observable 是懒惰的,我做了几种代码组合,但这里是实际的 Angular 代码:

IncidentService.ts:

supprimerIncident(incident)
{
  let cHeaders = new Headers({ 'Content-Type': 'application/json' });
   let cParams = new URLSearchParams();
   cParams.set('rfcnumber',incident);
   let options = new RequestOptions({ headers: cHeaders, params: cParams })
   return this.http.delete(Api+'delete',options)

     }

这是调用此服务的 incident.ts 文件的代码。

    deleter(incident:string)
  {
    let alert = this.alertCtrl.create({
        title: 'Confirmation',
        message: 'Voulez-vous supprimer ce ticket ?',
        buttons: [{
          text: "Ok",
          handler: () => { 

              this.incserv.supprimerIncident(incident).
             map(res=>res.status)
              .subscribe(res=>
  {
      for(let i = 0; i < this.incidents.length; i++) {

            if(this.incidents[i] == incident){
               this.incidents.splice(i, 1);

              }
  }
    //console.log(this.incidents=incident);

    console.log(res)
   },
    err=>{
  console.log(err);

  return Observable.throw(err.status);
  });
            }
        }, {
          text: "Annuler",
          role: 'cancel'
        }]
      })
      alert.present();


  }

splice 方法有效并从列表中删除了预期的行,但是当我再次运行应用程序时,该行又回到了那里,它仍在数据库中,可以直接从 Postman 中删除,但不能从应用程序中删除。 感谢您的帮助和时间,非常感谢。

编辑:这是请求网络的屏幕截图(xhr 请求结果)

【问题讨论】:

  • 您可以在您的 Ionic 应用程序中遵循此模式。 stackoverflow.com/a/46699558/1077309
  • 您是否检查过您的服务是否收到了删除请求?
  • 我确实检查了它,它没有,它返回 [object,object] 我将更新帖子以包含 Xhr 的屏幕

标签: angular http ionic3


【解决方案1】:

我解决了,这是搜索的参数,我从

更改了代码
supprimerIncident(incident)
{
  let cHeaders = new Headers({ 'Content-Type': 'application/json' });
   let cParams = new URLSearchParams();
   cParams.set('rfcnumber',incident);
   let options = new RequestOptions({ headers: cHeaders, params: cParams })
   return this.http.delete(Api+'delete',options)

     }

到:

supprimerIncident(incident)
{
  let cHeaders = new Headers({ 'Content-Type': 'application/json' });
   let cParams = new URLSearchParams();
   cParams.set('rfcnumber',incident.rfcnumber);
   let options = new RequestOptions({ headers: cHeaders, params: cParams })
   return this.http.delete(Api+'delete',options)

     }

“事件”是返回 [object Object] 的原因,我确实放了一个 JSON.stringify 来验证它的内容,它保存了整个请求,而我只想要 rfcnumber 作为搜索删除的参数。

希望对遇到类似问题的人有所帮助

【讨论】:

    猜你喜欢
    • 2020-03-05
    • 2020-08-21
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2018-05-13
    相关资源
    最近更新 更多