我已经搜索过了,有一大堆问题,就像这个问题的完整代码,但当阅读评论和帖子时,有建议,他们说他们尝试了一些东西,它起作用了,但没有明确地发布他们所做的实际更改。我真的会这么做。
这就是我在发布时不知道如何设置React App和服务器之间的通信。所以在测试和托管的机器上...fetch()运行得很好。当我在另一台笔记本电脑或我的手机上尝试时,我得到了Requests.js:7 GET http://localhost:3001/testing net::ERR_CONNECTION_REFUSED.
为了测试,我使用Apache和一个raspberrypi设置了服务器。
据我所知,我认为这可能与另一台计算机上的本地主机不是本地的有关。我怎么才能让它工作呢?
下面是一个示例链接:http://uptoptest.hopto.org/
以下是示例链接的代码:https://github.com/monochromaticmau/testingLiveWebsite
我应该提供apache内容的文件夹吗?我认为这是一件很简单的事情,只是我错过了如何以正确的方式适当地提供server.js。
Requests.js
const Data = {};
const baseUrl = 'http://localhost:3001'
Data.getTest = () => {
let url = `${baseUrl}/testing`;
return fetch(url).then(response => {
if (!response.ok) {
return new Promise(resolve => resolve([]));
}
return response.json().then(jsonResponse => {
return jsonResponse.test
});
});
};
server.js
const express = require('express')
const app = express()
const cors = require('cors')
const PORT = process.env.PORT || 3001
app.use(express.static('public')); //'public' folder contains js, css, images
app.use(cors());
app.use(express.json());
app.use((req,res,next)=>{
console.log(`Request!!`)
console.log(req.originalUrl)
console.log(req.path)
//res.setHeader('Access-Control-Allow-Origin', '*')
next();
})
app.get('/testing', (req,res,next)=>{
console.log('TEST REQUEST')
res.send({test: "Data blah blah"})
})
app.listen(PORT, ()=>{
console.log(`Listening on Port ${PORT}`)
})
//Used for Testing Server
module.exports = app;
你们这些人都很聪明..。请不要黑进我的小pi如果你知道怎么做的话。
发布于 2021-01-10 04:54:56
解决方案很简单。我必须将const baseUrl = 'http://localhost:3001'
更新为const baseUrl = 'http://uptoptest.hopto.org:3001'
,并在我的路由器上打开端口3001。
https://stackoverflow.com/questions/65546155
复制相似问题