lucky2727 2022-11-17 11:25 采纳率: 66.7%
浏览 14
已结题

服务器写入cookie线上失败

试过换域名什么的,本地测试可以正常获取,线上获取不到,本地一切正常
try {
            if (cookieValue == null) {
                cookieValue = "";
            } else if (isEncode) {
                cookieValue = URLEncoder.encode(cookieValue, "utf-8");
            }
            Cookie cookie = new Cookie(cookieName, cookieValue);
            if (cookieMaxage > 0)
                cookie.setMaxAge(cookieMaxage);
            if (null != request) {// 设置域名的cookie

                String domainName = getDomainName(request);
                //logger.info("========== domainName: {} ==========", domainName);
                if (!"localhost".equals(domainName)) {
                    cookie.setDomain(domainName);
                    //cookie.setDomain(".unionpay.com");    //测试此地址  写死
                    logger.info("========== domainName: {} ==========", domainName);
                }
            }
            cookie.setPath("/");
            response.addCookie(cookie);
        } catch (Exception e) {
            e.printStackTrace();
        }

​


private static final String getDomainName(HttpServletRequest request) {
String domainName = null;

    String serverName = request.getRequestURL().toString();
    if (serverName == null || serverName.equals("")) {
        domainName = "";
    } else {
        //serverName = serverName.toLowerCase();
        serverName = serverName.toLowerCase(Locale.ENGLISH);    //测试
        serverName = serverName.substring(7);
        final int end = serverName.indexOf("/");
        serverName = serverName.substring(0, end);
        if (serverName.indexOf(":") > 0) {
            String[] ary = serverName.split("\\:");
            serverName = ary[0];
        }

        final String[] domains = serverName.split("\\.");
        int len = domains.length;
        if (len > 3 && !isIp(serverName)) {
            // www.xxx.com.cn
            domainName = "." + domains[len - 3] + "." + domains[len - 2] + "." + domains[len - 1];
        } else if (len <= 3 && len > 1) {
            // xxx.com or xxx.cn
            domainName = "." + domains[len - 2] + "." + domains[len - 1];
        } else {
            domainName = serverName;
        }
    }
    return domainName;
}

```

```java

线上怎么才能发送给客户端
  • 写回答

6条回答 默认 最新

  • 普通网友 2022-11-17 11:58
    关注

    cookie 一般的话,你只要写入到请求中了,那么就会返回给客户端;
    如果写入cookie不成功之类的,看看你运行服务器的用户,有没有写入服务器的权限。
    这样即可解决。

    如果不能解决,欢迎来交流。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月24日
  • 创建了问题 11月17日

悬赏问题

  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译