![](/img/trans.png)
[英]Angular Post to Asp.Net (not Core) Web Api Error 415 on IIS
[英]angular http post error 415 .net core web api
嗨,我需要一些關於發布到 .net 核心 web api 的幫助。 我是 angular 的新手。
我試圖在 https://localhost:44394/api/SyUsers 發布請求,但出現 415 錯誤我試圖設置 const headers = new HttpHeaders(); headers.set('Content-Type', 'application/json');
這是發布方法:
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 核心的代碼
[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);
}
在 postman 上它正在工作:
在 postman 中,你將數據封裝在 body 中,而 bakend 是[FromBody]
,所以它可以正常運行。 但是在 angular 中,你使用FormData
,接收類型不同。
將[FromBody]
更改為[FromForm]
,並刪除JSON.stringify
中的 JSON.stringify。
this.http
.post<{message: string, user: Users}>(
BACKEND_URL,
userData,
{headers: headers}
)
.subscribe((responseData) => {
this.router.navigate(['user-list']);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.