我正在使用React Native Expo与Android,React和Express作为API。
当我访问API的地址时,我会收到一条消息。当我从React中获取它时,我会收到一条消息。当我尝试从React Native中获取时,我在控制台中得到“Error fetching data:[TypeError:Network request failed]”,而JS调试器中什么都没有。
我已经尝试了多个端口的所有来源和axios。我已经改变了特定端口的cors,重新启动一切多次,检查权限。
这里是我做的测试应用程序-我每次都得到相同的结果。谢谢!
表达
const express = require('express');
const cors = require('cors'); // Import the cors middleware
const app = express();
const port = 4321;
// Use the cors middleware
app.use(cors());
app.get('/', (req, res) => {
res.send({message: 'Hello'});
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
字符串
React Native
import React, { useEffect } from 'react';
const App = () => {
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('http://localhost:4321');
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
console.log('Data from the server:', data);
} catch (error) {
console.error('Error fetching data:', error);
}
};
fetchData();
}, []);
return (
<></>
);
};
export default App;
型
React(与RN相同)
import React, { useEffect } from 'react';
const App = () => {
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('http://localhost:4321');
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
console.log('Data from the server:', data);
} catch (error) {
console.error('Error fetching data:', error);
}
};
fetchData();
}, []);
return (
<></>
);
};
export default App;
型
1条答案
按热度按时间tct7dpnv1#
在React和React Native应用中,将'http://localhost:4321'替换为本地IP地址。
字符串
查找本地IP地址:
Windows系统:打开命令行,运行
ipconfig
,在当前网络连接下查找IPv4地址。在macOS/Linux上:打开终端,运行
ifconfig
或ip a,在活动网络连接下查找“inet”**地址。