Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从html页面中的静态url获取JSON_Javascript_Html_Node.js - Fatal编程技术网

Javascript 如何从html页面中的静态url获取JSON

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

我正在用html和node.js编写一个简单的应用程序 这是我用node.js、javascript和html编写的第一个应用程序

通过节点,我希望在调用url时发送json(在我的本地计算机中,下面的ip被调用:127.0.0.1/local)

当我调用该地址时,预期信息将正确返回到浏览器。 另外,我在html页面中添加了一个按钮,需要调用上面的地址来获取JSON数据

我已经试过了公认答案的解决办法

但我有一个错误:

XMLHttpRequest无法加载不允许的源服务器 访问控制允许源节点.js

问题是什么? 我认为提供的信息已经完成,但如果没有,请让我知道如何共享我的代码

  • 更新
好的,我知道我需要解释我的确切目标并提供我的代码

我正在通过Node.js开发一个程序 我有一个mysql数据库,我想从数据库中获得一些信息,并显示在html页面上。我在数据库js文件中使用bookshelf、express、lodash和router,所以我通过调用

127.0.0.1:3002/本地

我的html页面上有一个按钮;当用户触摸它时,需要获取信息。 我的html页面正在运行

127.0.0.1:8080

所以我认为不需要提供访问,db和html都在一台服务器上运行


也许我通过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包对我来说是更好的方式,我不知道我可以为它们设置相同的端口,谢谢。我将测试你的解决方案