You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+ASP.NET Core7更新用户邮箱异常排查求助

邮箱更新功能前端调用异常排查

我在React前端与ASP.NET Core 7后端构建的项目中实现了用户邮箱更新功能,遇到以下问题:通过Swagger调用API可正常更新数据库中的邮箱信息,但通过前端代码调用时,始终会将邮箱更新为'abc@gmail.com',且未返回任何错误。

前端代码

API调用方法及请求体结构

const response = await axiosInstance.put(UPDATE_USEREMAIL, {
            userEmail
});

axios实例定义

import axios from 'axios';
import { HOST_API_KEY } from './globalConfig';

const axiosInstance = axios.create({ baseURL: HOST_API_KEY });

axiosInstance.interceptors.response.use(
    (response) => response, // 返回成功响应
    (error) =>              // 处理错误
        Promise.reject(
            (error.response && error.response) || 'General Axios Error happend'
        )
);

export default axiosInstance;

后端代码

接收数据的DTO结构

using System.ComponentModel.DataAnnotations;

namespace backend_dotnet7.Core.Dtos.Auth
{
    public class UpdateUserEmailDto
    {
        [Required(ErrorMessage = "User Email is required")]
        public string? Email { get; set; }
    }
}

API接口方法

[HttpPut]
[Route("updateUserEmail")]
[Authorize]
public async Task<ActionResult<UpdateUserEmailResponseDto>> updateUserEmail(UpdateUserEmailDto 
updateUserEmailDto)     
{
    try
    {
        var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
        if (userId is null)
        {
            return StatusCode(StatusCodes.Status400BadRequest, "Can't find user, Please contact 
            admin");                                  
        }

        var isExists = await _userManager.FindByIdAsync(userId);
        if (isExists is null)
        {
            return StatusCode(StatusCodes.Status404NotFound, "User does not exists");
        }

        if(updateUserEmailDto.Email is null)
        {
            return StatusCode(StatusCodes.Status400BadRequest, "null");
        }

        var isValid = await _userEmailService.EmailValidation(updateUserEmailDto.Email);

        if (!isValid)
        { 
            return StatusCode(StatusCodes.Status400BadRequest, "User Email is invalid");
        }

        isExists.Email = updateUserEmailDto.Email;

        var result = await _userManager.UpdateAsync(isExists);

        if (!result.Succeeded)
        {
            var errors = result.Errors.Select(e => e.Description).ToList();
            return StatusCode(StatusCodes.Status400BadRequest, errors);
        }

        var userInfoObject = new UserInfoResult
        {
            Id = isExists.Id,
            FirstName = isExists.FirstName,
            LastName = isExists.LastName,
            Email = isExists.Email,
            UserName = isExists.UserName,
            CreatedAt = isExists.CreatedAt,
            Roles = isExists.Roles
        };

        return new UpdateUserEmailResponseDto
        {
            userInfo = userInfoObject,
        };

    }
    catch (Exception ex)
    {
        _userLogger.LogError(ex.Message);
        return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
    }
}

内容的提问来源于stack exchange,提问作者Chinthaka Senarathna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:13:16