如何使用javascript从我的网站查询本地主机服务器?

问题描述

我有一个网站,例如,mydomain.com。然后我在 localhost:3000 (127.0.0.1:3000) 启动本地后端服务器。我可以向这个网站添加一些 js 代码,以便它查询我的本地后端吗?由于我的浏览器和我的本地后端在同一台计算机上,我猜它可以以某种方式访问​​我的本地后端。我尝试创建一个代码https://codepen.io/dranitski/pen/ExNZLJo?editors=1111 使用此代码

fetch('http://localhost:3000/').then(r=> r.json().then(j=> console.log('\nREQUEST',j)));

并在本地创建了包含内容test.js 文件

require('http').createServer(function (req,res) { res.end('' + process.pid); }).listen(3000);

然后用 node test.js

启动它

但是我的代码笔给了我一个错误 Uncaught NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://127.0.0.1:3000/'

我可以声称后端正在工作,因为我可以从浏览器访问 http://127.0.0.1:3000/ 并成功查看结果。

其背后的想法是创建一个可以与在用户机器上本地运行的后端进行交互的网站。我的用户在本地启动了我们的后端服务器,我需要一个在线工具来查询这些数据,并以人类可读的形式向他们显示来自本地后端的一些数据。

提前致谢!

解决方法

有效!

只需要在本地节点服务器上启用cors

test.js

require('http').createServer(function(req,res){
    // Set CORS headers
    res.setHeader('Access-Control-Allow-Origin','*');
    res.setHeader('Access-Control-Request-Method','*');
    res.setHeader('Access-Control-Allow-Methods','OPTIONS,GET');
    res.setHeader('Access-Control-Allow-Headers','*');

    res.end('' + process.pid);

}).listen(3000);

然后用 node test.js

运行它

现在笔可以访问服务器了!