我创建了一个自定义登录页面,该页面可以完全在Firefox和chrome上运行。该页面是完全定制的,需要登录客户,验证电子邮件和密码并重定向到另一页面。
借助/remote.php?w=expressCheckoutLogin的帮助,我可以向BC发送电子邮件和密码,获得确认,然后将请求重定向到另一个页面。 该页面需要显示客户ID,以验证客户已登录并继续使用页面功能。
这在Firefox和Chrome(未经测试的IE)中可以完全正常运行,但是在SAFARI中,它无法完成登录。 在Safari中,提取请求的状态为== 1,登录完成,但是当我转到新页面时,客户ID不可用。看来客户尚未登录(即使状态为良好)。我再说一遍,这仅发生在SAFARI和OPERA中(不适用于Firefox和Chrome)。 两种浏览器存在Javascript不兼容的地方吗?
我正在使用MAC和最新版本的Cornerstone 2.2.1
有人知道是什么原因导致这种神秘行为吗? 这是我的通话代码:
fetch('/remote.php?w=expressCheckoutLogin',{
headers: {
'Accept': '*/*',
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'POST',
body: 'login_email='+login_email+'&login_pass='+login_password
})
.then(response => response.json().then(json => {
if(json.status == 1) {
window.location = '/sell-checkout-1/'
} else {
// manage error
// .... //
}
}))
.catch((error) => {console.error(error)});
答案 0 :(得分:0)
获取。我建议检查您正在使用的Safari版本:
https://caniuse.com/#feat=fetch
您可以使用polyfill,但是更好的选择可能是使用客户登录API,而不是在请求中发送电子邮件和密码:
https://developer.bigcommerce.com/api/v3/storefront.html#/introduction/customer-login-api