如何从 Safari 钥匙串自动填充向服务器调用 ajax respond() 方法?

How to call ajax respond() method to server from Safari keychain autofill?

我们有 Java-基于 Wicket 的 EE 应用程序。

问题是,当你想在 Safari 中使用钥匙串提示自动填充用户名和密码时,服务器无法注册用户名,因为带有钥匙串的 Safari 不会发送 Ajax 回调,这需要服务器捕获使用 ajax 方法:

/**
     * @param target
     *            The AJAX target
     */
    protected abstract void respond(AjaxRequestTarget target);  

文本字段的 html 代码或此组件的 javascript 应该是什么样子才能在从苹果钥匙串填写时发送 ajax 回调?

感谢您的回答。

我猜你有一个 HTML 表单,其中包含用于用户名的文本输入字段、用于密码的密码字段以及用于提交表单的(ajax?!)按钮。

您需要在 Safari 自动填充功能填充用户名和密码字段后立即触发按钮的点击侦听器。

如果 Safari 在填充后触发事件,则 JS 代码将类似于:

$('#passwordId').on('change', function(evt) {
   if ($('#usernameId').value() && $('#passwordId').value()) {
       $('#buttonId').click();
   }
});

以上我假设 Safari 在自动填写密码字段后触发 change 事件。然后,如果用户名和密码字段都非空,我单击该按钮。这将导致此按钮的正常行为,即它将对服务器进行 (Ajax) 调用,Wicket 将完成其余的工作。