繁体   English   中英

Angular6 POST请求保持待处理状态

[英]Angular6 POST request remains in pending status

您好,我正在尝试将来自angular6的请求发布到asp.net核心Web api,但是不幸的是,该请求从未在服务器上收到,并且始终处于“待处理”状态。

我在服务器上的模型:

public class MainVM
{
        public int ID { get; set; }
        public string Name { get; set; }
        public bool IsActive { get; set; }
        public int DepartmentID { get; set; }
        public IFormFile Logo { get; set; }
        public List<ChildVM> ListChilds { get; set; }

}

public class ChildVM
{
        public string Name { get; set; }
        public int SequenceNo { get; set; }
        public int NoOfPrices { get; set; }
        public IFormFile Image { get; set; }
}

和终点:

[HttpPost]
[Consumes("multipart/form-data")]
public void Post([FromForm]MainVM data)
{
}

我用来从angular发布数据的Angular6服务:

const formData: FormData = new FormData();
    //formData.append('Logo', logo, logo.name);
    formData.append('Name', obj.Name);
    formData.append('ListChilds[0].Name', obj.ListChilds[0].Name);
    formData.append('ListChilds[0].SequenceNo', String(obj.ListChilds[0].SequenceNo));
    formData.append('ListChilds[0].NoOfPrices', String(obj.ListChilds[0].NoOfPrices));



    return this.http.post<MainVM>('http://localhost:60458/api/mycontroller/', formData).pipe(
      map((res) => { console.log('res'); return res; }),
      catchError(this.handleError('lpc', null))
    );

当我注释掉与formData中的ListChilds相关的代码时,请求将在Web api处接收,但该请求不会在使用ListChilds的Web api处接收。

我想我缺少了一些东西。

请指导。

谢谢。

尝试这个 -

 formData.append('ListChilds', JSON.stringify(obj.ListChilds));

它应该将obj.ListChilds中的所有值填充到ListChilds中。

最终发现这是Asp.net Core 2.2中的错误,我在这里找到了它:

https://github.com/aspnet/AspNetCore/issues/4802

问题是当我们在子模型中使用IFormFile类型时,Asp.net core 2.2程序开始挂起(如上面的链接中所述)。

作为解决方法,我从ChildVM中删除了以下行:

public IFormFile Image { get; set; }

并在MainVM中添加了以下行:

public List<IFormFile> ListImage { get; set; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM