这可能是重复的问题,但我尝试了大部分来自互联网的东西但没有成功。 我是React Native的新手。我正在使用物理设备(我的Android手机)作为运行我的输出,并尝试从我在localhost(默认端口80)中用PHP编码的测试项目之一获取JSON数据。
这是我的Login.js登录功能,用于获取数据:
login = () => {
fetch('http://localhost/XTest/send_react', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
username: this.state.username,
password: this.state.password,
})
})
.then((response) => response.json())
.then((res) => {
if (res.success === true) {
AsyncStorage.setItem('user', res.user);
this.props.navigation.navigate('Profile');
} else {
alert(res.message);
}
})
.done();
我通过加载上面的url来测试我的PHP代码,它提供了JSON数据。但我在React Native中加载的是:
网络请求失败,错误代码为红色。
我尝试更改我的网址=> ' HTTP:/本地主机:80 / XXXXXXXXX'甚至添加了#34;代理":' http://localhost/'正如网页中某处所建议的那样,但没有任何成功。任何帮助或建议将不胜感激。谢谢。
答案 0 :(得分:0)
那是因为localhost只对设备是本地的。
您需要运行PHP的实际设备的IP地址(如果它在同一网络上可能看起来像192.168.xx)在终端或命令提示符中尝试import numpy as np
a = np.array([9, 4, 4, 3, 3, 9, 0, 4, 6, 0])
args = np.argsort(-a)[:2]
array([0, 5], dtype=int64)
也可以查看所有设备的地址网络。
答案 1 :(得分:0)
fetch('http://YOURIP(192.168.X.X):YOURPORT', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
答案 2 :(得分:0)
对于遇到此问题的Android模拟器(Genymotion),只需确保在端口IP address
后使用本地number
。您可以在本地终端或命令提示符中使用ipconfig
轻松识别。
我在React-Native中使用匿名函数的示例
login = () => {
fetch('http://192.x.x.x:PORT', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
username: this.state.username,
password: this.state.password }),
}).then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
...etc
}
答案 3 :(得分:0)
我也有同样的问题,任何人都可以找到解决方案。我尝试使用IP地址,但未给出响应。请看下面的代码。
let email = this.state.email;
let pass = this.state.pass;
fetch("http://192.168.1.2:8080/ReactAPI/post.php", {
method: "POST",
body: JSON.stringify({
email: email,
password: pass
}),
headers: {
"Content-Type": "application/json",
Accept: "application/json"
}
})
.then(response => console.log(response))
.catch(err => console.log(err));
答案 4 :(得分:0)
您可以在特定IP上启动服务器...
例如如果是json-server,-host [IP-address]将在该位置启动服务器:
json-server --watch db.json -p 3001 -d 2000 --host 192.168.83.230