角度 http post 错误 415 .net 核心 web api
Posted
技术标签:
【中文标题】角度 http post 错误 415 .net 核心 web api【英文标题】:angular http post error 415 .net core web api 【发布时间】:2021-04-27 15:03:21 【问题描述】:您好,我需要一些关于发布到 .net core web api 的帮助。我是 Angular 新手。
我试图在 https://localhost:44394/api/SyUsers 上发布请求 但我得到 415 错误我试图设置 常量头 = 新的 HttpHeaders(); headers.set('Content-Type', 'application/json');
这里是post方法:
addPost(
authType: string,
userId: string,
userCreateDate: any,
username: string,
firstName: string,
middleName: string,
lastName: string,
email: string,
position: string,
section: string,
department: string,
alias01: string,
alias02: string,
alias03: string,
alias04: string,
userModifiedDate: any
)
const userData = new FormData();
userData.append('authType', authType);
userData.append('userId', userId);
userData.append('userCreateDate', userCreateDate);
userData.append('username', username);
userData.append('Hash', localStorage.getItem('userId').toString());
userData.append('firstName', firstName);
userData.append('middleName', middleName);
userData.append('lastName', lastName);
userData.append('email', email);
userData.append('position', position);
userData.append('section', section);
userData.append('department', department);
userData.append('alias01', alias01);
userData.append('alias02', alias02);
userData.append('alias03', alias03);
userData.append('alias04', alias04);
userData.append('userPermissions', 'sa');
userData.append('userGroup', 'sa');
userData.append('userModifiedDate', userModifiedDate);
userData.append('userModifiedBy', localStorage.getItem('username').toString());
userData.append('userCreatedBy', localStorage.getItem('username'));
this.http
.post<message: string, user: Users>(
BACKEND_URL,
JSON.stringify(userData),
headers: headers
)
.subscribe((responseData) =>
this.router.navigate(['user-list']);
);
console.log(userData)
这是来自 .net core 的代码
[HttpPost]
public async Task<ActionResult<SyUsers>> PostSyUsers([FromBody] SyUsers userData)
_context.SyUsers.Add(userData);
await _context.SaveChangesAsync();
return CreatedAtAction("GetSyUsers", new id = userData.Id , userData);
在邮递员上它正在工作:
【问题讨论】:
你能分享你的邮递员请求正文吗? 使用纯 javascript 对象而不是“FormData()”: const userData = authType: authType ... 【参考方案1】:在postman中,你将数据封装在body中,bakend是[FromBody]
,所以可以正常运行。但是在angular中,你使用FormData
,接收类型不同。
将[FromBody]
更改为[FromForm]
,并删除角度中的JSON.stringify
。
this.http
.post<message: string, user: Users>(
BACKEND_URL,
userData,
headers: headers
)
.subscribe((responseData) =>
this.router.navigate(['user-list']);
);
【讨论】:
@Christian Lacuesta,你能接受这个答案吗? 是的,非常感谢 karney,这是很大的帮助。以上是关于角度 http post 错误 415 .net 核心 web api的主要内容,如果未能解决你的问题,请参考以下文章
来自 Axios 405 或 415 错误的 Vue.js 和 .NET WEBAPI2 POST
POST 到 Jersey REST 服务收到错误 415 Unsupported Media Type
asp.net core 2.2 发布文件导致 http/415 不支持的媒体类型
使用 CORS 在 IIS 上运行的 Angular 2 和 .net 核心 Web 应用程序之间的 HTTP 415 OPTIONS 请求