You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wix平台下如何正确重定向并传递当前登录用户的变量?

问题分析与解决方案

作为Wix+JavaScript新手,你遇到的核心问题是异步操作处理不当,同时URL格式和参数构建也存在疏漏,我来帮你逐一修正并给出可行方案:

你的代码里的关键错误

  • 异步逻辑处理错误:currentMember.getMember()是返回Promise的异步方法,你直接把它拼在URL里,最终会得到www.page.com[object Promise]这种无效地址,必须等Promise完成拿到真实数据后再处理跳转。
  • URL缺少协议头:跳转的目标地址必须带https://(或http://),否则Wix会把它当成站内相对路径,导致跳转失败。
  • 未正确构建URL参数:你没有把会员数据转换成标准的URL查询参数格式,目标页面根本无法读取这些信息。

修正后的完整代码

import { currentMember } from 'wix-members';
import wixLocation from 'wix-location';

export async function button2_click(event) {
    try {
        // 等待异步获取会员数据完成
        const member = await currentMember.getMember();
        
        // 提取需要传递的会员信息
        const id = member._id;
        const status = member.status;
        const fullName = `${member.contactDetails.firstName} ${member.contactDetails.lastName}`;
        const email = member.contactDetails.emails[0]; // 会员邮箱是数组,默认取第一个
        
        // 用URLSearchParams自动构建合法的查询参数,处理特殊字符转义
        const queryParams = new URLSearchParams({
            id: encodeURIComponent(id),
            status: encodeURIComponent(status),
            fullName: encodeURIComponent(fullName),
            email: encodeURIComponent(email)
        });
        
        // 拼接完整的目标URL(必须带协议头)
        const targetUrl = `https://www.page.com?${queryParams.toString()}`;
        
        // 执行跳转
        wixLocation.to(targetUrl);
    } catch (error) {
        console.error('获取会员数据或跳转失败:', error);
        // 这里可以添加用户可见的错误提示,比如弹出提示框告知跳转失败
    }
}

重要细节说明

  • 用async/await替代Promise链式调用,让异步代码更直观易读;
  • URLSearchParams是处理URL参数的标准API,能自动处理空格、特殊字符的转义,避免手动拼接出现格式错误;
  • 会员邮箱存储在emails数组中,绝大多数场景下取第一个元素即可;
  • 跳转失败的catch块里,建议补充用户可见的错误提示,提升体验。

内容的提问来源于stack exchange,提问作者Raphael Moral Piazera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:07:44