localhost/:1 Access to XMLHttpRequest at 'http://localhost:8080/zc-main/api/screen/baseInfoCountII' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
时间: 2023-07-24 09:45:19 浏览: 155
这个错误是由于浏览器的同源策略(Same-origin policy)引起的。同源策略要求在进行跨域请求时,服务器必须在响应中添加 `Access-Control-Allow-Origin` 头来明确允许的来源域名,否则浏览器会拒绝该请求。
在这个错误中,你的应用程序试图从 `http://localhost` 的源发起一个跨域请求到 `http://localhost:8080`,但是服务器没有在响应中添加 `Access-Control-Allow-Origin` 头,因此浏览器拒绝了该请求。
要解决这个问题,你需要在服务器端添加 `Access-Control-Allow-Origin` 头来允许来自 `http://localhost` 的跨域请求。具体来说,你可以在服务器端的响应中添加以下头信息:
```
Access-Control-Allow-Origin: http://localhost
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type
```
其中,`Access-Control-Allow-Origin` 指定允许的来源域名,`Access-Control-Allow-Methods` 指定允许的 HTTP 方法,`Access-Control-Allow-Headers` 指定允许的请求头。你可以根据实际需要进行调整。
如果你使用的是 Express 框架,可以使用 `cors` 中间件来简化跨域设置。例如:
```javascript
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({
origin: 'http://localhost',
methods: ['GET', 'POST', 'PUT', 'DELETE'],
allowedHeaders: ['Content-Type']
}));
// ... 其他路由定义
app.listen(8080);
```
在这个例子中,我们使用了 `cors` 中间件来设置跨域策略。`origin` 参数指定允许的来源域名,`methods` 参数指定允许的 HTTP 方法,`allowedHeaders` 参数指定允许的请求头。
阅读全文