这个错误提示是由于CORS(跨源资源共享,Cross-Origin Resource Sharing)策略导致的。当你从一个源(origin)向另一个源发起请求时,如果目标服务器没有明确允许发起请求的源访问其资源,浏览器会阻止这次请求。
在您的情况中:
- 您的应用程序运行在
http://localhost:8080
。 - 应用程序尝试通过XMLHttpRequest向
http://127.0.0.1:7700/course/admin/course/page
发送POST请求。
为了解决这个问题,需要在目标服务器(即 http://127.0.0.1:7700
上运行的服务)上配置响应头以允许 http://localhost:8080
的跨域访问。具体来说,需要设置如下HTTP响应头:
Access-Control-Allow-Origin: http://localhost:8080
此外,对于预检请求(OPTIONS方法),还需要添加以下响应头:
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT...
Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With...
如果是使用Node.js的Express框架,示例如下:
const express = require('express');
const app = express();
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
if (req.method === 'OPTIONS') {
res.send(204);
} else {
next();
}
});
// ... 其他路由和中间件配置 ...
app.listen(7700, () => console.log('Server is running on port 7700'));
确保在实际应用中将 'http://localhost:8080'
替换为您实际的应用地址,并根据需求调整 Access-Control-Allow-Methods
和 Access-Control-Allow-Headers
中的值。