在前端,我使用Angular 7,然后尝试使用Kendo上传图像:
<kendo-upload
[saveUrl]="uploadSaveUrl"
[removeUrl]="uploadRemoveUrl"
[restrictions]="uploadRestrictions"
[multiple]="false"
[withCredentials]="false"
(success)="showSavedSuccess()"
(error)=showSavedFailed($event)
>
,在后端,我使用ASP.NET Core。我基本上使用从这里获取的代码(常规控制器类型的版本): https://www.telerik.com/forums/file-upload-full-example-with-server-side-code
尝试时会触发成功事件。但是,如果我要测试错误,而不是
return Ok(new { count = files.Count, size, filePath });
我使用
return StatusCode(500);
在那种情况下,(error)
event没有被触发,我仍然从剑道那里收到消息Uploading...
。如果检查网络,我会清楚地看到500 error
消息。
我尝试从后端发送不同的响应(null,...),但所有这些都得到相同的结果。
顺便说一句,这个问题与标题相似的this one无关。
我应该解决什么?我应该从BE返回某个错误值还是必须以其他方式处理Kendo的模块?我在剑道的页面上找不到此信息...帮助!
答案 0 :(得分:0)
error event在上载或删除操作失败时触发。 This is an example。
状态代码500永远不会到达客户端。 Such exceptions should be handled on the server side。应从服务器返回正确的HTTP状态代码/错误。
These是此处最常见状态代码的内置ASP.NET Core方法,目的是触发上载组件的错误事件。或者,Angular Interceptor可用于自定义整个客户端-服务器通信。可以从定制拦截器组件发送定制错误响应。 Example。
来源:Telerik支持团队。