首页 > 解决方案 > html 的自动完成属性在本地机器上工作,但是当我将它部署在服务器上时它不起作用

问题描述

我想通过使用 autocomplete="off" 来禁用 Web 浏览器的自动完成功能。我尝试使用此属性并在我的本地机器上正常工作,但是当我在服务器上部署相同的代码以及使用本地机器的浏览器访问同一页面时(我之前确认的相同 chrome 浏览器并按预期工作)似乎自动完成未禁用并提示保存用户名和密码。

<!DOCTYPE html>
<html>
<head>
    <title>Form, autocomplete html5</title>
</head>
<body>
    <form action="" autocomplete="off">
        <table>
            <tr>
                <td>
                    <label>First Name:</label>
                </td>
                <td>
                    <input type="text" name="fname">
                </td>
            </tr>
            <tr>
                <td>
                    <label>Last Name:</label>
                </td>
                <td>
                    <input type="text" name="lname">
                </td>
            </tr>
            <tr>
                <td>
                    <label>Email ID:</label>
                </td>
                <td>
                    <input type="text" name="email">
                </td>
            </tr>
            <tr>
                <td>
                    <label>Password:</label>
                </td>
                <td>
                    <input type="password" name="pwd">
                </td>

            </tr>
            <tr>
                <td> </td>
                <td>
                    <input type="submit">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

我期望通过在服务器上部署页面使其生效后的确切原因,为什么它不能正常工作并且在我的本地机器上工作正常。我的浏览器信息是“版本 75.0.3770.100(官方版本)(32 位)”。为了使这一点正确,可能需要采取哪些步骤。

标签: html

解决方案


正如 MDN 关于自动完成的文章中所述:

在大多数现代浏览器中,将自动完成设置为“关闭”不会阻止密码管理器询问用户是否要保存用户名和密码信息,或者自动在站点的登录表单中填写这些值。

https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#Values

您可以通过将密码字段的自动完成属性设置为new-password如下所述来解决此问题:https ://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#Preventing_autofilling_with_autocompletenew-password

一般来说,我会建议保留自动完成功能,因为在大多数情况下,阻止用户的功能会导致糟糕的用户体验。


推荐阅读