Javascript Can';t在Safari上运行函数
我有这个密码Javascript Can';t在Safari上运行函数,javascript,Javascript,我有这个密码 var secondfactor = function (result) { console.log(window.u2f); window.u2f.sign(result.appId, result.challenge, [result], response => { console.log(response); axios.post("/api/v1/login
var secondfactor = function (result) {
console.log(window.u2f);
window.u2f.sign(result.appId, result.challenge, [result], response => {
console.log(response);
axios.post("/api/v1/loginu2f", { loginResponse: response })
.then(result => {
if(result.data.error) {
console.log(result.data)
} else {
window.location.replace("/");
}
});
//console.log(response);
});
}
...
var ajaxlogin = null;
$('#formlogin').on('submit', function() {
...
if (!hasError) {
//we send the form to the api
var formdata = $('#formlogin').serializeArray();
if (ajaxlogin && ajaxlogin.abort) ajaxlogin.abort();
ajaxlogin= $.ajax({
type: "POST",
url: "/api/login",
data: formdata,
cache: false,
success: function (response) {
if (response.error) {
switch (response.error) {
case 'notfound' :
secondfactor(response.session)
break;
default:
$('#diverror').html('Une erreur s\'est produite, merci de réessayer ultérieurement.').show();
}
}
else {
//on redirige sur la page désirée car l'api nous a connecté
location.href='/';
}
},
failure: function (response) {
console.log('response');
}
});
}
return false;
});
在Chrome上效果很好,但在safari上,函数u2f.sign()
不执行,我首先在控制台日志中显示,该函数确实存在于u2f对象上:
但是如果我运行console.log(window.u2f.sign())
我会得到未定义的
,下图:
下面是chrome上.sign()
方法的响应对象:
我做错了什么?签名
返回什么?也许它没有返回任何东西?@Justinas它确实在chrome上返回了一个对象。我在chrome上添加了.sign()
方法的响应chrome@Tschallacka其iOS版Safari,Safari MacOS只是版本13,是的,我有版本1313@Tschallacka兄弟,请正确阅读表格,Safari for MacOS从13.0开始支持U2F,以及13.3版iOS版Safari支持U2F