这是用于允许跨源的测试环境配置。这适用于我的AWS弹性beanstalk,但是,当我使用nodejs http-server
时,我收到错误(404):“未找到”
。我尝试过不同的配置。另外,我发现的许多与此问题相关的答案都涉及 express ,但我没有使用 express 。如果有人知道或看到我做错了什么,我将非常感谢您的帮助。提前谢谢您!
var port = process.env.PORT || 8080,
http = require('http'),
fs = require('fs'),
html = fs.readFileSync('index.html');
var server = http.createServer(function(req, res) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Request-Method', '*');
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS,GET,PUT,POST,DELETE');
res.setHeader('Access-Control-Allow-Headers', '*');
if (req.method === 'POST') {
var body = '';
req.on('data', function(chunk) {
body += chunk;
});
req.on('end', function() {
if (req.url === '/') {
log('Received message: ' + body);
} else if (req.url = '/scheduled') {
log('Received task ' + req.headers['x-aws-sqsd-taskname'] + ' scheduled at ' + req.headers['x-aws-sqsd-scheduled-at']);
}
res.writeHead(200, 'OK', { 'Content-Type': 'text/plain' });
var ip = req.connection.remoteAddress
res.write(body);
res.end();
});
} else {
res.writeHead(200);
res.write(html);
res.end();
}
});
server.listen(port);
最佳答案
它在本地主机上对我来说工作得很好
在控制台
node server.js
上像这样运行(其中 server.js 包含您发布的代码)启动服务器时您是否仔细检查了 PORT 环境变量?如果您没有设置 PORT 环境变量,请确保转到 http://localhost:8080/在浏览器上。要在控制台上检查环境变量,可以执行命令
env
您是否有一个index.html,以便
html = fs.readFileSync('index.html');
工作?
关于javascript - 带有本地主机的简单 NodeJS 服务器,错误 (404) : "Not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45801036/