一、什么是跨域传递 cookie

跨域传递 cookie 是指,在不同域的客户端和服务端之间,通过 cookie 来实现跨域通信。一般情况下,浏览器会拒绝跨域请求,因为它们存在安全隐患,但是使用 cookie 可以实现跨域通信,因为 cookie 可以保存在客户端,而不会受到浏览器的限制。

二、搭建前后端跨域传递 cookie 环境

1、前端设置:在前端,可以通过设置 withCredentials 属性来实现跨域传递 cookie,如下所示:

let xhr = new XMLHttpRequest();xhr.withCredentials = true;
JavaScript

2、后端设置:在后端,可以通过设置 Access-Control-Allow-Credentials 来实现跨域传递 cookie,如下所示:

res.setHeader("Access-Control-Allow-Credentials", true);
JavaScript

3、服务端设置:在服务端,可以通过设置 Access-Control-Allow-Origin 来实现跨域传递 cookie,如下所示:

res.setHeader("Access-Control-Allow-Origin", "http://example.com");
JavaScript

三、注意事项

1、前端和后端都需要设置:当使用跨域传递 cookie 时,前端和后端都需要进行相应的设置,前端需要设置 withCredentials 属性,后端需要设置 Access-Control-Allow-Credentials 属性,服务端需要设置 Access-Control-Allow-Origin 属性。

2、要求同源:当跨域传递 cookie 时,需要满足同源策略,即前端和后端必须属于同一个域,否则会导致 cookie 无法传递。

3、需要 https:如果要使用跨域传递 cookie,则必须使用 https 协议,否则会出现安全问题。