fetch请求失败,No 'Acess-Control-Allow-Origin' header is present on the requested resource.
时间: 2023-10-30 17:05:49 浏览: 227
fetch-blob:Node.js 中的 Blob 实现,最初来自 node-fetch
这个错误提示表明在你的fetch请求中缺少了'Access-Control-Allow-Origin'头部信息,这是由于浏览器的同源策略限制引起的。同源策略要求请求只能在相同的域名、协议和端口下发起,否则会被浏览器阻止。
为了解决这个问题,你可以在服务器端设置响应头部信息,允许特定的域名访问该资源。具体而言,你需要在服务器响应的时候添加'Access-Control-Allow-Origin'头部,并设置其值为请求来源的域名(可以使用通配符*来允许所有域名访问)。
以下是一个示例的解决方法,使用Node.js和Express框架作为服务器端示例:
```javascript
const express = require('express');
const app = express();
app.use(function(req, res, next) {
// 设置允许跨域的域名,*代表允许任意域名跨域
res.header('Access-Control-Allow-Origin', '*');
// 设置允许的HTTP请求方法
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
// 设置允许的HTTP请求头部
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
// 允许携带cookie
res.header('Access-Control-Allow-Credentials', 'true');
next();
});
// 处理你的其他路由和中间件
app.listen(3000, () => {
console.log('服务器启动成功');
});
```
这样设置之后,服务器会在响应中包含'Access-Control-Allow-Origin'头部信息,允许所有域名进行跨域请求。
阅读全文