我有一个带有 Jest + MSW 的复制仓库,我正在尝试让 MSW 接收跨域 cookie。默认情况下,JSDOM 加载在http://localhost
. 当向这个域发送获取请求并且 MSW 也在这个域上监听时,一切都很好,cookie 被接收到。
但是,当尝试向另一个域发送请求时,例如http://localhost:4444
,不会向 MSW 发送任何 cookie。奇怪的是,如果我注释掉 MSW 并在同一个端口上启动一个快速服务器,它确实会收到所有的 cookie。为什么它们被发送到快递服务器而不是MSW?
最后,同样奇怪的是,如果 MSW 和 express 服务器都在运行,MSW 在 4444 上,Express 在 5555 上,express 服务器将不再接收 cookie。就好像 MSWbeforeAll(() => server.listen());
正在以某种方式杀死跨域 cookie。
饼干套装:
setCookie("local00=L00", "http://localhost");
setCookie("local44=L44", "http://localhost:4444");
setCookie("local55=L55", "http://localhost:5555");
setCookie("local66=L66", "http://localhost:6666");
fetch(http://localhost) --> handler("http://localhost"): OK! all cookies received
fetch(http://localhost:4444) --> handler("http://localhost:4444): No cookies received
OR
--> express("http://localhost:4444): OK! all cookies received
fetch(http://localhost:4444) --> handler("http://localhost:5555): No cookies received
AND
--> express("http://localhost:4444): No cookies received
如何向 MSW 发送跨域请求并让它接收 cookie?