我应该如何处理相当传统的Web应用程序中的ajax请求?特别是使用React进行视图,同时使用后端处理文本等数据,但使用ajax自动保存用户交互,例如切换选项或将帖子贴到服务器上。
我应该只使用jQuery,还是像Backbone这样的东西会更有益?
答案 0 :(得分:42)
为了防止任何人偶然发现并且不知道,jQuery使发送AJAX调用变得非常容易。由于React只是JavaScript,它将像任何其他jQuery AJAX调用一样工作。
React自己的文档使用jQuery来进行AJAX调用,所以我认为无论是大多数用途还是堆栈都足够好。
componentDidMount: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
答案 1 :(得分:17)
请在https://github.com/facebook/react/wiki/Complementary-Tools
查看关于HH:MM:SS
的Facebook官方文档
他们只是推荐几个数据提取API,如
我个人最喜欢的是Complementary Tools
,因为承诺可以在浏览器和nodejs env中使用,甚至正式反应JS网站建议 AJAX and APIs
答案 2 :(得分:13)
你可以使用JavaScript Fetch API,它也支持GET和POST,还有构建Promise。
fetch('/api/getSomething').then(function() {...})
答案 3 :(得分:1)
我绝对允许你使用Fetch API
。它理解起来非常简单,支持所有方法,您可以使用async/await
代替promise/then
并回调地狱。
例如:
fetch(`https://httpbin.org/get`,{
method: `GET`,
headers: {
'authorization': 'BaseAuth W1lcmxsa='
}
}).then((res)=>{
if(res.ok) {
return res.json();
}
}).then((res)=>{
console.log(res); // It is like final answer of XHR or jQuery Ajax
})
以更好的方式或async/await
方式:
(async function fetchAsync () {
let data = await (await fetch(`https://httpbin.org/get`,{
method: `GET`,
headers: {
'authorization': 'BaseAuth W1lcmxsa='
}
})).json();
console.log(data);
})();