Javascript 无法获取本地html文件以与本地express Node.js服务器通信。未能加载资源:网络::错误\u连接\u被拒绝
我是网页设计新手,正在尝试创建一个简单的本地服务器和本地客户端。我担心我在兜圈子时掉进了兔子洞 我制作了一个简单的Express node.js服务器:Javascript 无法获取本地html文件以与本地express Node.js服务器通信。未能加载资源:网络::错误\u连接\u被拒绝,javascript,node.js,localhost,Javascript,Node.js,Localhost,我是网页设计新手,正在尝试创建一个简单的本地服务器和本地客户端。我担心我在兜圈子时掉进了兔子洞 我制作了一个简单的Express node.js服务器: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.urlencoded({ extended: true })); var port = 3000; app.lis
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
var port = 3000;
app.listen(port, function() {
console.log("Listening on port: " + port);
});
app.get('/', function(req, res) {
console.log(req);
res.send('Get request received at "/"');
});
app.post('/quotes', function(req, res) {
console.log(req);
// do something
});
我有一个javascript客户端:
const url = "http://localhost/3000";
fetch(url)
.then((resp) => resp.json())
.then(function(response) {
let data = response.results;
console.log(data);
//do something
})
.catch(function(error) {
console.log(JSON.stringify(error));
});
从index.html文件调用
当我在(chrome)浏览器中键入内容时,我得到
'在“/”处收到请求'
在浏览器中显示,在node.js控制台中显示很长的req,正如我所期望的那样
但是,当我将index.html加载到浏览器中时,它不起作用
最初index.html文件与node.js服务器位于不同的目录中,我得到了错误:
对飞行前请求的响应未通过访问控制检查:否
“Access Control Allow Origin”标头出现在请求的服务器上
资源因此,不允许访问源“null”
因此,我将其移动到与node.js服务器相同的目录中,现在出现以下错误:
未能加载资源:网络::错误\u连接\u被拒绝
在浏览器控制台中,节点控制台中没有输出
我会取代
consturl=”http://localhost/3000";代码>
使用consturl=”http://localhost:3000";代码>似乎我需要在服务器上启用cors。npm安装cors,这个答案解决了我的问题。
这不起作用,但它确实恢复了我以前的错误。浏览器控制台现在显示:请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源。