Bigcommerce模板自定义登录页面不适用于SAFARI / OPERA

问题描述 投票:0回答:1

我创建了一个完全适用于firefox和chrome的自定义登录页面。此页面完全自定义,需要登录客户,验证电子邮件和密码并重定向到另一页。

在enpoint /remote.php?w=expressCheckoutLogin的帮助下,我可以向BC发送电子邮件和密码,获得确认,然后将请求重定向到另一个页面。此页面需要显示客户ID,以验证客户是否已登录并继续执行页面功能。

这完全适用于Firefox和Chrome(IE未经测试),但在SAFARI中,它无法完成登录。在Safari中,获取请求提供状态== 1并且登录已完成,但是当我转到新页面时,客户ID不可用。似乎客户未登录(即使状态良好)。我再说一遍,这只发生在SAFARI和OPERA(不是firefox和chrome)。这两个浏览器有一些Javascript不兼容?

我正在使用MAC和最新版本的基石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)});
login safari bigcommerce
1个回答
0
投票

Opera和旧版本的Safari不支持Fetch。我建议您检查您正在测试的Safari版本:

https://caniuse.com/#feat=fetch

您可以使用polyfill,但更好的选择可能是使用客户登录API而不是在请求中发送电子邮件和密码:

https://developer.bigcommerce.com/api/v3/storefront.html#/introduction/customer-login-api

© www.soinside.com 2019 - 2024. All rights reserved.