如何在Angular中处理中止的上载?

如何在Angular中处理中止的上载?,angular,http,Angular,Http,我可以通过POST请求将文件上载到后端,当文件太大时,它会返回Http 400状态码。当使用邮递员时,它可以完美地工作。 当我在浏览器(chrome)中执行此调用时,会出现以下错误: zone.js:2933 POST net::错误连接中止 因此,myHttpErrorResponse的状态代码为0: HttpErrorResponse{headers:HttpHeaders,状态:0,状态文本:“未知错误”,url:null,ok:false,…} 答案解释了问题,但是我如何在Angular

我可以通过POST请求将文件上载到后端,当文件太大时,它会返回Http 400状态码。当使用邮递员时,它可以完美地工作。

当我在浏览器(chrome)中执行此调用时,会出现以下错误:

zone.js:2933 POST net::错误连接中止

因此,myHttpErrorResponse的状态代码为0

HttpErrorResponse{headers:HttpHeaders,状态:0,状态文本:“未知错误”,url:null,ok:false,…}


答案解释了问题,但是我如何在Angular中处理这个问题?我一直在指望Http 400响应中包含的返回错误消息…

我认为这更多是一个与API相关的问题,而不是Angular本身的问题。。。您的API应该处理这个问题并返回一个适当的400错误

作为一种解决方法,为了改进用户界面,您可以在将文件发布到后端之前对文件进行角度验证。如果它太大,那么只需阻止帖子并通知用户

您可以按如下方式访问文件的“大小”属性:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <input type="file" (change)="onChange($event)"/>
    </div>
  `,
  providers: [ UploadService ]
})
export class AppComponent {
  onChange(event) {
    var files = event.srcElement.files;
    console.log(files[0].size);
  }
}
@组件({
选择器:“我的应用程序”,
模板:`
`,
提供者:[上传服务]
})
导出类AppComponent{
onChange(事件){
var files=event.srcmelement.files;
console.log(文件[0].size);
}
}

就像@Miam84所说的那样,这不是一个角度问题。您可以检查文件限制。但是你能提供更多关于你的服务器的细节吗?我认为您必须在服务器端处理该问题!我想更改一些配置。这只是从浏览器上载文件时的问题。正如我所写的,使用一个单独的rest客户端(Postman),我得到了预期的400,这是一个简单的解决方案:-)我正在寻找一种防止连接中止的方法。