相同的HttpPut请求代码格式不起作用,但可以在另一个请求上使用

时间:2019-08-06 18:00:12

标签: asp.net angular typescript

我有一个未调用的HTTPPUT请求。我有一个类似的请求请求,可以管理另一个选项卡,并且可以正常工作。这两页非常相同。我不知道我在做什么错。

我几乎尝试了所有东西,不知道还能尝试什么。

控制器:

   [HttpPut]
        [Route("updateAllocations({type})")]
        public IHttpActionResult UpdateAllocations(string type, T_LOC entity)
        {
            System.Diagnostics.Debug.WriteLine("inside");
            _allocationsService.UpdateAllocations(type,entity);
            return Ok();
        }

界面:

using OTPS.Core.Objects;
using System.Collections.Generic;
using OTPS.Core.Models;
namespace OTPS.Core.Interfaces
{
    public interface IAllocationsService
    {

        void UpdateAllocations(string type,  T_LOC entity);
    }
}

服务:

  public void UpdateAllocations(string type, T_LOC entity)
        {
            System.Diagnostics.Debug.WriteLine("inside");
        }

客户端:

 public updateAllocation(type: string , entity) {
        console.log("sdfsdf")
        console.log(`${this.baseUrl}/api/allocations/updateAllocations(${type})`)
        return this.http.put(`${this.baseUrl}/api/allocations/updateAllocations({type})`, entity, { headers: this.headers, withCredentials: true })
            .pipe(catchError((error: Error) => {
                console.log("sdfasd111111sdf")
                return this.errorService.handleError(error);
            }));
    }

我希望客户端在进行进一步逻辑处理之前先调用put请求,但是服务器端的打印永远不会被调用。

1 个答案:

答案 0 :(得分:0)

确保您subscribe进入组件内部的服务方法:

this.myService.updateAllocation(type, entity).subscribe( response => {
// do something here with response

});
  

您必须致电subscribe()否则什么都不会发生。刚打电话   服务方法不会启动PUT / DELETE / POST / GET请求。

     

始终订阅!

     

一个HttpClient方法在您调用之前不会开始其HTTP请求   subscribe()关于该方法返回的可观察对象。这是真的   用于所有HttpClient方法。