Возврат персонализированного ответа после отправки запроса - PullRequest
2 голосов
/ 08 июня 2019

Я регистрирую пользователя в системе, отправляя данные через FormData () в действие в бэкэнде. Пользователь заходит, все нормально. Я хочу отправить ответ на фронтенд, строка (Json) не имеет значения.

    [Route("login")]
    [HttpPost]
    public async Task<ActionResult> LoginAsync(string username, string password)
    {
        await HttpContext.SignOutAsync(IdentityConstants.ApplicationScheme);

        var result = await mSignInManager.PasswordSignInAsync(username, password, true, false);

        if (result.Succeeded)
        {
            return new JsonResult("Succeeded", new JsonSerializerSettings());
            // or return new[] { user.DisplayName, user.Role };
        }

        return new JsonResult("Failed", new JsonSerializerSettings());
    }

На внешнем интерфейсе я ожидаю увидеть переданную строку или json, но я получаю это как ответ от fetch.

Response {type: "basic", url: "https://ip/api/sampledata/login", redirected: false, status: 200, ok: true, …}
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "https://ip/api/sampledata/login"

1 Ответ

2 голосов
/ 08 июня 2019

Вы можете просто использовать ContentResult для возврата простой строки:

public async Task<ActionResult> LoginAsync(string username, string password)
{
    await HttpContext.SignOutAsync(IdentityConstants.ApplicationScheme);

    var result = await mSignInManager.PasswordSignInAsync(username, password, true, false);

    if (result.Succeeded)
    {
        return new JsonResult("Succeeded", new JsonSerializerSettings());
        // or return new[] { user.DisplayName, user.Role };
    }

    return Content("Failed");
}

ContentResult по умолчанию возвращает text/plain в качестве его CONTENTTYPE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...