首页 新闻 会员 周边

cookie的发送问题

0
悬赏园豆:10 [已解决问题] 解决于 2022-01-28 23:17

在A页面点击超链接跳转到B页面的时候,通过使用js创建一个cookie,希望浏览器在发送请求时能够带上被创建的cookie
A.js

$('table tr td').click(
    function()
    {
        document.cookie = "testName=你好 tom;Path=/";
        window.location.href = "/B.html" ;
    }
);

B.js

$(function(){
    if(document.cookie.length > 0){
        let start = document.cookie.indexOf("testName=");
        if(start != -1){
            start = start + "testName".length + 1;
            let end = document.cookie.indexOf(";", start);
            if(end == -1)
                end = document.cookie.length;
            alert(unescape(document.cookie.substring(start, end)));
        }
    }
}

结果是B.js可以获取到 testName 的值,但是在后端遍历request中的 cookies 数组时,却没有 testName。浏览器在发送请求的时候不是会附带上 cookie 吗?望大佬能传道授业解惑,解答一下浏览器发送 cookie 的过程。

up-bear的主页 up-bear | 初学一级 | 园豆:134
提问于:2022-01-27 15:18
< >
分享
最佳答案
1

个人见解:

  1. cookie有作用域的概念。a.myhost.com 与 b.myhost.com 不一定可用通用。这取决于 cookie的 Domain
  2. 如果是在跨域且ajax请求的情况下。
    服务端是否允许携带cookie(Access-Control-Allow-Credentials: true)。
    前段ajax请求设置为携带cookie(withCredentials:true)。不同的ajax库有不同的设置方式。
  3. cookie 的 Secure策略,只有使用https才会起作用。
收获园豆:5
jzblive | 菜鸟二级 |园豆:428 | 2022-01-27 20:06
其他回答(3)
1

前后台交互发送的cookie是浏览器定义的cookie数据,不是用户自定义的数据
你要把数据传到后端,用ajax提交过去

收获园豆:5
jqw2009 | 园豆:2439 (老鸟四级) | 2022-01-27 15:30
0

如果你的A页面和B页面在同一个域下面,会自己带过去的

梦想天空分外蓝啊 | 园豆:204 (菜鸟二级) | 2022-01-27 15:31
0

domain的问题吧

人间春风意 | 园豆:2370 (老鸟四级) | 2022-01-28 11:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册