簡體   English   中英

angular http post error 415 .net core web api

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM