【发布时间】:2019-11-28 18:51:35
【问题描述】:
这是我的角码
let fileToUpload = this.profilePhotoFiles[0];
let formData: FormData = new FormData();
formData.append('file', fileToUpload, fileToUpload.name);
this._http.post('/api/Media/upload', formData , {
headers: {
'Accept': 'application/json',
'Content-Type': fileToUpload.type,
'Content-Disposition' : 'multipart/form-data'
}
})
.subscribe(r => console.log(r));
这就是我的 api 实现方式,
[HttpPost]
[Route("upload")]
public IActionResult UpdatePicture([FromForm(Name = "file")] IFormFile file)
{
if (file == null)
return StatusCode(500);
//...............myUploadingCode
return Ok();
}
网址和身份验证都很好且正确。但它返回代码 401 并且无法访问 API 方法 UpdatePicture。
我该如何解决?我在这里错过了什么?
编辑
这就是我获取上传照片的formData的方式
let formData: FormData = new FormData();
formData.append('file', fileToUpload, fileToUpload.name);
更新 1
Authorization 标头之后
this.headers = this.headers.append('Authorization', myTokenValue);
它通过了401 unauthorize,但它返回了 415 种不受支持的格式。
更新 2
在我添加之后
this.headers = this.headers.set('Content-Disposition', 'multipart/form-data');
它通过代码415但在API控制器中,但参数IFormFile file为空。
来自this问题的参考。
【问题讨论】:
-
当您使用 postman 尝试此 API 时发生了什么?
-
您是否使用 XSRF 保护?它看起来不像你发送的那样,asp.net 总是会从我所看到的返回 401
-
@SudarshanaDayananda ,在邮递员中也是如此。 (401)
标签: angular asp.net-core-webapi