当本地开发的Web应用程序在本地主机上被CORS策略阻止时,可以尝试以下解决方法:
const express = require('express');
const request = require('request');
const app = express();
app.use('/', (req, res) => {
const url = '目标服务器的URL' + req.url;
req.pipe(request(url)).pipe(res);
});
app.listen(3000, () => {
console.log('Proxy server listening on port 3000');
});
在上述代码中,将目标服务器的URL替换为实际的URL。启动代理服务器后,将本地应用程序的请求发送到代理服务器的URL上,代理服务器会将请求转发到目标服务器,并将响应返回给本地应用程序。
const express = require('express');
const app = express();
app.use('/', (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
next();
});
// 其他路由和中间件
app.listen(3000, () => {
console.log('Web app listening on port 3000');
});
在上述代码中,将'Access-Control-Allow-Origin'
设置为'*'
,表示允许所有来源的跨域请求。可以根据实际需求设置允许的来源。将'Access-Control-Allow-Methods'
设置为允许的HTTP方法,将'Access-Control-Allow-Headers'
设置为允许的请求头。这样设置响应的CORS头信息后,浏览器将允许跨域请求。
请注意,这些解决方法仅适用于本地开发环境。在生产环境中,需要根据目标服务器的配置和需求来设置CORS策略。