Javascript XMLHttpRequest在react本机应用程序上不起作用
我正在使用XMLHttpRequestAPI从react原生android应用程序的服务器请求资源 这是我的应用程序代码(客户端) 上述服务器端代码在浏览器请求时成功运行,但在客户端(react native app)请求时不起作用。 任何答复都将不胜感激 好的。。。在客户端,我刚刚创建了一个按钮。触摸按钮时,将调用显示功能。此show函数将创建一个新的XMLHttpRequest(localhost:3000/show\u react)到在端口3000处运行的localhost服务器Javascript XMLHttpRequest在react本机应用程序上不起作用,javascript,android,node.js,react-native,xmlhttprequest,Javascript,Android,Node.js,React Native,Xmlhttprequest,我正在使用XMLHttpRequestAPI从react原生android应用程序的服务器请求资源 这是我的应用程序代码(客户端) 上述服务器端代码在浏览器请求时成功运行,但在客户端(react native app)请求时不起作用。 任何答复都将不胜感激 好的。。。在客户端,我刚刚创建了一个按钮。触摸按钮时,将调用显示功能。此show函数将创建一个新的XMLHttpRequest(localhost:3000/show\u react)到在端口3000处运行的localhost服务器 如果re
如果react本机应用程序中的请求URL实际上是
localhost:3000/show\u react
,那么您的问题是localhost
指向您的本地设备(即智能手机)。URL需要可以从运行react本机应用程序的设备访问。尝试在您的设备(即智能手机)上的Safari浏览器中浏览到URL为什么不使用fetch
?这是一个在React Native中支持的更加友好的API,但XMLHttpRequestAPI更容易学习。所有的语法都类似于纯javascript XMLHttp请求fetch
是Web API的一部分,就像XMLHttpRequest一样,是javascript,我不理解你关于“语法类似于纯javascript”的说法<与XMLHttpRequest不同,code>fetch本身也有更多的功能,并且由React-Native支持。在我看来,这并不容易学。您可以使用fetch
在3行代码中完成任务,而不是使用XMLHttpRequest执行8-10行代码。React Native支持XMLHttpRequest。您的代码似乎没有问题,您能否详细说明它是如何不工作的,您收到了什么,是否有任何错误等?另外,您是否可以与另一台服务器进行检查,以确保问题与XMLHttpRequest有关?
import React,{Component} from 'react';
import {Text,View,StyleSheet,TouchableOpacity} from 'react-native';
class Home extends Component
{
state={con:''}
show=()=>
{
alert("show function called");
var req=new XMLHttpRequest();
req.onreadystatechange=(e)=>
{
if(req.status==200 && req.readyState==4)
{
alert(req.responseText);
}
}
req.open("GET","http://localhost:3000/show_react");
req.send();
}
render()
{
return(
<View style={styles.container}>
<TouchableOpacity onPress={()=>this.show()} style={styles.box}><Text>Click</Text></TouchableOpacity>
<Text>{this.state.con}</Text>
</View>
);
}
}
export default Home;
const styles=StyleSheet.create({
box:
{
padding:10,
width:200,
marginTop:10,
backgroundColor:'rgba(215, 44, 149, 0.7)',
alignItems:'center'
},
container:
{
flexDirection:'row',
justifyContent:'center'
}
});
app.get("/show_react",function(req,res){
console.log("show_react called");
res.send("hii react");
});