最近在学习react-native,遇到调用后端接口的问题.看了看官方文档,推荐使用es6的fetch来与后端进行交互,在网上找了一些资料.在这里整理,方便以后查询.
1.RN官方文档中,可使用 HttpRequest
var request = new HttpRequest();
request. = (e) = >{
if (request.readyState !== 4) {
return;
}
if (request.status === 200) {
console.log(\'success\', request.responseText);
} else {
console.warn(\'error\');
}
};
request.open(\'GET\', \'https://mywebsite.com/endpoint.php\');
request.send();
这是http的原生方法,这里不做多的介绍.
2.RN官方文档中,推荐使用fetch
fetch(\'https://mywebsite.com/endpoint/\', {
method: \'POST\',
headers: {
\'Accept\': \'application/json\',
\'Content-Type\': \'application/json\',
},
body: JSON.stringify({
firstParam: \'yourValue\',
secondParam: \'yourOtherValue\',
})
}).then(function(res) { console.log(res)
})
body中的数据就是我们需要向服务器提交的数据,比如用户名,密码等;如果上述body中的数据提交失败,那么你可能需要把数据转换成如下的表单提交的格式:
fetch(\'https://mywebsite.com/endpoint/\', {
method: \'POST\',
headers: {
\'Content-Type\': \'application/x-www-form-urlencoded\',
},
body: \'key1=value1&key2=value2\'
}).then(function(res) {
console.log(res)
})
这样可以获取纯文本的返回数据.
如果你需要返回json格式的数据:
fetch(\'https://mywebsite.com/endpoint/\').then(function(res) {
if (res.ok) {
res.json().then(function(obj) {
// 这样数据就转换成json格式的了
})
}
}, function(ex) {
console.log(ex)
})
fetch模拟表单提交:
fetch(\'doAct.action\', {
method: \'post\',
headers: {
\"Content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\"
},
body: \'foo=bar&lorem=ipsum\'
})
.then(json)
.then(function (data) {
console.log(\'Request succeeded with JSON response\', data);
})
.catch(function (error) {
console.log(\'Request failed\', error);
});
不过无论是ajax还是fetch,都是对http进行了一次封装,大家各取所好吧.
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalFetch/fetch
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
下一篇 :
开发者死后,他的开源项目会有人继续维护吗?
-
不写代码也能玩转AI,uber最新开源项目了解一下?
2026-05-19栏目: 教程
-
MySQL从5.6到8.0并行复制的演进
2026-05-19栏目: 教程
-
RPA市场迅速升温的背后
2026-05-19栏目: 教程
-
Node中Buffer的初始化及回收
2026-05-19栏目: 教程
-
还在关注“宏颜获水”?DuerOS 5.0让你更惊讶
2026-05-19栏目: 教程
