代码之家  ›  专栏  ›  技术社区  ›  ProfK

为什么这个Razor页面Ajax调用会得到404?

  •  0
  • ProfK  · 技术社区  · 5 年前

    我正在调用 Register 页,使用以下客户端代码:

    $.ajax({
        type: "GET",
        url: "/Register?handler=GeneratePassword",
        contentType: "application/json",
        dataType: "json",
        success: function (response) {
            $("#genPwd").val(response.Password);
        },
        failure: function (response) {
            alert(response);
        }
    });
    

    页面模型中的操作如下所示:

    public JsonResult OnGetGeneratePassword()
    {
        var pwd = _passwordService.GeneratePassword(_passwordOptions);
        return new JsonResult(new { Ok = true, Password = pwd });
    }
    

    根据我读到的关于Razor页面Ajax调用的内容,这应该是可行的,那么为什么要使用404呢?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Andrew    5 年前

    您是否尝试过使用IActionResult而不是JsonResult

    public IActionResult OnGetGeneratePassword()
    {
        var pwd = _passwordService.GeneratePassword(_passwordOptions);
        return new JsonResult(new { Ok = true, Password = pwd });
    }
    

    您还可以尝试删除ajax url开头的/,如下所示:

    $.ajax({
        type: "GET",
        url: "Register?handler=GeneratePassword",