Javascript 如何从html页面中的静态url获取JSON
我正在用html和node.js编写一个简单的应用程序 这是我用node.js、javascript和html编写的第一个应用程序 通过节点,我希望在调用url时发送json(在我的本地计算机中,下面的ip被调用:127.0.0.1/local) 当我调用该地址时,预期信息将正确返回到浏览器。 另外,我在html页面中添加了一个按钮,需要调用上面的地址来获取JSON数据 我已经试过了公认答案的解决办法 但我有一个错误: XMLHttpRequest无法加载不允许的源服务器 访问控制允许源节点.js 问题是什么? 我认为提供的信息已经完成,但如果没有,请让我知道如何共享我的代码Javascript 如何从html页面中的静态url获取JSON,javascript,html,node.js,Javascript,Html,Node.js,我正在用html和node.js编写一个简单的应用程序 这是我用node.js、javascript和html编写的第一个应用程序 通过节点,我希望在调用url时发送json(在我的本地计算机中,下面的ip被调用:127.0.0.1/local) 当我调用该地址时,预期信息将正确返回到浏览器。 另外,我在html页面中添加了一个按钮,需要调用上面的地址来获取JSON数据 我已经试过了公认答案的解决办法 但我有一个错误: XMLHttpRequest无法加载不允许的源服务器 访问控制允许源节点.j
- 更新
也许我通过XMLHttpRequest调用db数据的解决方案不是一个正确的解决方案。我在问,这是不是调用数据的唯一方法?是否尝试在节点js文件中添加标题。如果不是,请添加以下代码:
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, __setXHR_, X-Requested-With, Content-Type, user-agent, Accept, X-Auth-Token, X-Amz-Content,Authorization");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
next();
});
页面和Json资源位于两个不同的端口(3002和8080)。这就是导致访问控制允许原点错误的原因。它可以作为浏览器防止跨脚本的安全性 在ajax中,在正常情况下,页面和资源应该具有相同的源,并且相同的源策略依赖于主机名和端口 您的解决方案只是在同一端口上访问主页和JSON资源
- 127.0.0.1:8080/index.html->获取主页
- 127.0.0.1:8080/local->获取您的JSON
使用XMLHttpRequest访问它没有问题,这是正确的方法,许多框架都使用它,例如angular。感谢Mital,我不尝试您的解决方案,我更喜欢使用cors节点包,我不认为您的答案有用,因为CORS包对我来说是更好的方式,我不知道我可以为它们设置相同的端口,谢谢。我将测试你的解决方案