原生js创建cookie
时间: 2023-09-27 08:08:24 浏览: 90
创建的方法如下:
```javascript
function setCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = '; expires=' + date.toUTCString();
}
document.cookie = name + '=' + value + expires + '; path=/';
}
```
使用方法:
```javascript
setCookie('myCookie', 'hello', 7); //将名为myCookie的cookie值设置为hello,有效期为7天
```
其中,`name`表示cookie的名称,`value`表示cookie的值,`days`表示cookie的有效期,以天为单位。如果`days`参数不传,则cookie的有效期为会话期间,即浏览器关闭时失效。
相关问题
使用原生JavaScript创建一个XMLHttpRequest对象,然后发送一个POST请求到地址http://192.168.100.109:986。在请求完成后,会根据状态码和响应数据更新页面上一个id为message的元素的内容。设置跨域请求相关的参数,怎么允许跨域
要允许跨域请求,需要在发送请求之前设置XMLHttpRequest对象的相关属性。以下是一个示例代码:
```javascript
const xhr = new XMLHttpRequest();
xhr.withCredentials = true; // 允许发送cookie
xhr.open('POST', 'http://192.168.100.109:986');
xhr.setRequestHeader('Content-Type', 'application/json'); // 设置请求头
xhr.onreadystatechange = function() {
if (this.readyState === this.DONE && this.status === 200) {
var response = JSON.parse(xhr.responseText);
var message = document.getElementById('message');
message.textContent = 'yes';
} else {
var message = document.getElementById('message');
message.textContent = 'NO';
}
};
xhr.send(JSON.stringify({param1: 'value1', param2: 'value2'}));
```
在上述代码中,设置了`xhr.withCredentials`为`true`,表示允许发送cookie;设置了请求头`xhr.setRequestHeader('Content-Type', 'application/json')`,表示请求体的格式是JSON类型。同时,还需要在服务器端进行相应的配置,才能允许跨域请求。例如,在响应头中添加`Access-Control-Allow-Origin`字段,指定允许跨域的源地址。
需要注意的是,由于存在跨域安全问题,浏览器会对跨域请求进行拦截。如果服务器没有进行相应的跨域配置,请求可能会被拦截导致请求失败。
原生ajaxajax请求如何携带cookie
在原生ajax请求中,可以通过设置xhr对象的withCredentials属性来携带cookie。具体步骤如下:
1. 创建XMLHttpRequest对象
```javascript
var xhr = new XMLHttpRequest();
```
2. 设置withCredentials属性为true
```javascript
xhr.withCredentials = true;
```
3. 发送请求前设置请求头
```javascript
xhr.setRequestHeader('Content-Type', 'application/json'); // 设置Content-Type
xhr.setRequestHeader('Authorization', 'Bearer ' + token); // 发送身份认证信息
```
4. 发送请求
```javascript
xhr.open('POST', '/api/user', true);
xhr.send(JSON.stringify(data));
```
在以上步骤中,第二步设置了withCredentials属性为true,表示允许跨域请求携带cookie。第三步设置了请求头,可以根据实际情况设置不同的请求头。第四步发送请求时,如果服务器允许跨域请求携带cookie,则cookie会自动携带到服务器端。
阅读全文