首页 > 解决方案 > ejs 不会呈现 Html 页面

问题描述

我使用 Express 和 EJS 将来自数据库查询的响应呈现为一个简单的 Html 页面。在开发工具中显示错误

“从源 'http://localhost:3000' 访问 'https://o189131.ingest.sentry.io/api/5478725/envelope/?sentry_key=504fcb6b9eee411d8157d41c0adb1170&sentry_version=7' 已被 CORS 策略阻止:否请求的资源上存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。”

而且它不呈现 Html 页面,我想使用保持 ejs 文件的扩展名,如 home.html 而不是在 Visual Studio 中使用 home.ejs.html 但我不能,为什么?

const express = require('express')
const app = express()

app.set('view engine', 'ejs');

app.get('/', (req, res) => {
    res.render('home')
})
app.listen(3000, () => {
    console.log("LISTENING ON PORT 3000")
})

标签: javascriptnode.jsexpressejs

解决方案


看起来像 CORS 错误,当您的请求被浏览器的同源策略阻止时会发生这种错误。尝试将 'Access-Control-Allow-Origin: "*"' 添加到您的请求标头以绕过它:

app.use(function(req, res, next) {
     res.header("Access-Control-Allow-Origin", "*");
     res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
     next();
 });

你可以在这里阅读更多。


推荐阅读