Quiero publicar el nombre de usuario de angular a asp.net web api. mi método de publicación desde el servidor es:

 [Route("CheckUserName")]
    [AllowAnonymous]
    [HttpPost]
    public async Task<IHttpActionResult> CheckUsernameExist([FromBody] string username){ //return true or false}

Y en angular

checkUserName(userName: string) {
return this.http.post(
  `${this.appConfig.apiEndpoint}/${CHECK_USER_NAME}`,{userName})
  .pipe(map(res => res['result']['status'] as boolean));}

{userName} son datos para enviar al servidor, pero el lado del servidor recibe nulo. También pruebo datos:

userName,
{username:userName},
'"'+userName+'"',
,...

  checkUserName(userName: string) {
const headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post(
  `${this.appConfig.apiEndpoint}/${CHECK_USER_NAME}`, { userName },{ headers: headers })
  .pipe(map(res => res['result']['status'] as boolean));

}

También pruebo con cartero y obtengo datos en el lado del servidor correctamente postman test

0
Mostafa Bagheri 22 feb. 2020 a las 11:05

2 respuestas

La mejor respuesta

Después de mucho tiempo encontré

       let reqHeaders = new HttpHeaders().set('Content-Type', 'application/json');
   return this.http.post(`${this.appConfig.apiEndpoint}/${CHECK_USER_NAME}`, JSON.stringify(userName), { headers: reqHeaders })
      .pipe(map(res => res['result']['status'] as boolean));

Respuesta

0
Mostafa Bagheri 23 feb. 2020 a las 11:52

Envíe sus datos en este formato:

{userName:userName}
0
Mohammad niazmand 22 feb. 2020 a las 09:39