启用跨域但错误仍然存在
Posted
技术标签:
【中文标题】启用跨域但错误仍然存在【英文标题】:Enabled Cross Origin but error still persists 【发布时间】:2020-01-24 11:46:50 【问题描述】:我在使用 express 作为中间件的 nodejs 服务器中启用了 CORS,但我仍然得到 p>
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
我已尝试启用此处建议的 cors 和解决方案 Using CORS Still Give Cross Origin Error
但它仍然对我不起作用。
app.use(cors())
app.options('*',cors())
app.use((req, res, next) =>
res.header('Access-Control-Allow-Origin', '*');
// authorized headers for preflight requests
// https://developer.mozilla.org/en-US/docs/Glossary/preflight_request
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
app.options('*', (req, res) =>
// allowed XHR methods
res.header('Access-Control-Allow-Methods', 'GET, PATCH, PUT, POST, DELETE, OPTIONS');
res.send();
);
);
这就是我在前端nextjs
应用程序中创建请求的方式。
const requestBody=
bnb: address
let config =
headers:
'Content-Type': 'application/x-www-form-urlencoded'
axios.post(methods.verify_bnb, qs.stringify(requestBody), config)
//
我应该能够发出请求和服务器来处理它,因为我启用了 cors,但它仍然抛出提到的错误。
【问题讨论】:
为确保此处配置了 cors,请查看此处:expressjs.com/en/resources/middleware/cors.html。您是否收到 503 错误代码?我曾经看到它是如何在 chrome 浏览器中被解释为 cors 错误的——在我的示例中,当服务器在处理请求时遇到数据库调用问题时,我得到了这个。 我确实按照此应用程序提供的链接中的说明进行操作,但仍然没有用。不,我也没有收到 503 错误。它不会在本地环境中产生错误。 你试过这样使用cors吗? const cors = require('cors') app.use(cors()) ,我认为您现在正在设置 cors 然后覆盖这些设置。或者如果想允许它用于特定路线,请查看此处***.com/questions/11181546/… 是的,我正在使用这个配置。我已经删除了其他的,但错误仍然存在。值得一提的是,我已经在谷歌计算引擎上部署了服务器。我可以通过 http 与邮递员进行交互,但在应用程序上它给出了阻止混合内容的错误,所以我已将其转换为 https,它不适用于邮递员,但应用程序不会创建该错误但 cors 错误 你检查了谷歌计算引擎日志吗? 【参考方案1】:我将前端部署在 zeit 上,并将服务器部署在计算引擎上。这给了我这个错误,只要我在同一个计算引擎上部署前端,它就可以正常工作。我不确定这是否是正确的实现,但不再产生 CORS 错误
【讨论】:
以上是关于启用跨域但错误仍然存在的主要内容,如果未能解决你的问题,请参考以下文章
在带有 Angular 的 Spring Boot 中启用了 Cors,但仍然出现 cors 错误