gpt4 book ai didi

javascript - 为什么 Safari 发送错误的 cookie 值?

转载 作者:行者123 更新时间:2023-12-03 10:15:47 24 4
gpt4 key购买 nike

我有代码定期增加 AJAX 发送的 cookie 值中的计数器。这在 Chrome/FF/IE 中有效,但在 Safari 中,我在服务器上收到的 cookie 值大约是 JS 值 + 10。

/* Example uses jQuery */
var counter = 0;
function handleInteraction(){
counter++;
createCookie("COUNTER", counter, 10);
}

$('body').on('mousemove', function () {
handleInteraction();
});

$('body').on('click', function () {
console.log(counter);
$.get("http://bryan.co.il/del.php");
handleInteraction();
});

这是为什么?

请提供 Safari 的文档(如果有)。

最佳答案

我找不到相关文档。

Safari 似乎改变了 XHR 请求的实现 - 尽管这似乎是 http 规范允许的。

大多数浏览器,在发送AJAX时,都是同步读取cookie值,然后异步发送请求。

然而,Safari 甚至异步读取 cookie 值(即,只要需要)。

这里有一些代码演示如何使用 quirksmode.org 中的 createCookie:

createCookie("TEST_COOKIE", "Before", 10);
var x = new XMLHttpRequest();
x.open("GET", location.href);
x.send();
createCookie("TEST_COOKIE", "After", 10);

在 Chrome(等)中,服务器将接收“before”cookie。在 Safari 中(在 Windows、Mac 和 iPad 上测试),服务器将在之后接收!

关于javascript - 为什么 Safari 发送错误的 cookie 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29878084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com