首页 > 解决方案 > 表单在 chrome 中提交,但不在任何其他浏览器上

问题描述

我正在使用 Visual Studio 发布选项推送我的代码。

我面临的问题是当我将代码发布到 Azure Web App 并在我的主站点切换它之后。

到那时一切正常,但在交换注册登录后没有任何效果。它可能看起来很奇怪,但是当我们使用相同的注册和登录 Chrome 时它工作正常,但是当我尝试在其他浏览器中复制相同的内容时它不会工作。它没有达到 post 的方法,服务器返回 500 作为响应。

<form asp-controller="Account" asp-action="RegisterPost" method="post" class="form-horizontal" role="form" id="signup-form" data-bind="submit: submitForm">
    <div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
    <div class="form-group">
        <div class="col-md-4 register-input">
            <input asp-for="FirstName" class="form-control" placeholder="First Name" />
            <span asp-validation-for="FirstName" class="text-danger"></span>
        </div>
        <div class="col-md-4 register-input">
            <input asp-for="MiddleName" class="form-control" placeholder="Middle Name" />
            <span asp-validation-for="MiddleName" class="text-danger"></span>
        </div>
        <div class="col-md-4 register-input">
            <input asp-for="LastName" class="form-control" placeholder="Last Name" />
            <span asp-validation-for="LastName" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-6 register-input">
            <input asp-for="Email" class="form-control" placeholder="Email" />
            <span asp-validation-for="Email" class="text-danger"></span>
        </div>
        <div class="col-md-6 register-input"></div>
    </div>
    <div class="form-group">
        <div class="col-md-6 register-input">
            <input asp-for="Password" class="form-control" placeholder="Password" />
            <span asp-validation-for="Password" class="text-danger"></span>
        </div>
        <div class="col-md-6 register-input">
            <input asp-for="ConfirmPassword" class="form-control" placeholder="Confirm Password" />
            <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
        </div>
        <div class="col-md-12 register-help">
            <span class="help-text">at least 8 characters, must include a number</span>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-12 center-block">
            <button type="submit" class="btn btn-action">Signup</button>
        </div>
    </div>
</form>

我用于提交表单的脚本:

self.submitForm = function () {                
    if ($("#signup-form").valid()) {
        return true;
    }

    return false;
};

控制器代码:

[HttpPost]
[AllowAnonymous]
[Route("/register")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> RegisterPost(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
        var result = await _userManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            await _userManager.AddToRoleAsync(user, RolesEnum.Candidate.ToString());
            await _signInManager.SignInAsync(user, isPersistent: false);
            await _context.SaveChangesAsync(model.Email);

            return RedirectToAction(nameof(AccountController.VerifyPhone));
        }

        if (result.Errors != null && result.Errors.Any(e => e.Code == "DuplicateUserName"))
        {
            return RedirectToAction("Register", new { err = "exists" });
        }
    }
    return View("Register", model);
}

标签: asp.net-coreazure-web-app-serviceformshttp-post

解决方案


推荐阅读