javascript - 发布请求后返回自定义响应

标签 javascript c# asp.net-mvc

我通过 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"

最佳答案

您可以只使用 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

关于javascript - 发布请求后返回自定义响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506672/

相关文章:

C# 从注册表中获取不带参数的值

c# - 实验性特征 "indexed members"是什么?

JavaScript 嵌套范围

javascript - 如何通过值获取 JavaScript 'Map' 中的键?

javascript - 用JavaScript替换html字符串

c# - C#中 bool 值和 bool 值的区别?

javascript - 将按钮的值传递给隐藏字段并将其保存到数据库

asp.net-mvc - Entity Framework 不更新模型的复杂集合属性

MVC 部分 View 中包含的 Javascript 仅在第一次运行

javascript - 从javascript中的对象方法访问对象属性