Bigcommerce模具自定义登录页面无法在SAFARI / OPERA上运行

时间:2018-08-30 18:47:42

标签: login safari bigcommerce

我创建了一个自定义登录页面,该页面可以完全在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)});

1 个答案:

答案 0 :(得分:0)

Opera和较旧版本的Safari不支持

获取。我建议检查您正在使用的Safari版本:

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

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

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