axios请求本地json文件304
时间: 2023-09-22 07:07:53 浏览: 212
vue+axios+获取本地JSON,能量树能量收集
当使用 Axios 请求本地 JSON 文件时,有可能会遇到 304 Not Modified 状态码的响应。这是因为浏览器在请求静态资源时,会在本地缓存中查找该资源,如果缓存中已经有该资源的副本并且其 ETag 没有发生变化,则服务器会返回 304 状态码,并告诉浏览器可以直接使用本地缓存中的资源。
为了避免这种情况的发生,我们可以在 Axios 请求时添加一些配置项,强制让浏览器每次都向服务器发送请求,而不是从本地缓存中获取资源。具体方法如下:
```javascript
axios.get('data.json', {
headers: {
'Cache-Control': 'no-cache',
'Pragma': 'no-cache'
}
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});
```
在上述代码中,我们向 Axios 的 get 方法中添加了 headers 配置项,该配置项中包含了两个属性:Cache-Control 和 Pragma。这两个属性会告诉浏览器不要使用缓存,而是每次都向服务器发送请求。
另外,我们也可以在服务器端设置响应头,告诉浏览器不要缓存该资源。具体方法如下(以 Node.js 为例):
```javascript
const express = require('express');
const app = express();
app.get('/data.json', (req, res) => {
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Pragma', 'no-cache');
res.sendFile(__dirname + '/data.json');
});
app.listen(3000, () => {
console.log('Server is listening on port 3000');
});
```
在上述代码中,我们在服务器端设置了两个响应头:Cache-Control 和 Pragma,与前面的 Axios 配置项相同。这样浏览器每次请求该资源时,服务器都会返回一个新的响应。
阅读全文