Javascript 使用JQuery post+;获取数据
我使用它从Django服务器获取Javascript 使用JQuery post+;获取数据,javascript,jquery,django,reactjs,httprequest,Javascript,Jquery,Django,Reactjs,Httprequest,我使用它从Django服务器获取TODO: getTodos(){ $.ajax({url: "http://localhost:8000/todos/", success: function(data){ this.setState({todos:data},function(){console.log(data)})}.bind(this), cache: false}); } 这将发布一个新的todo
TODO
:
getTodos(){
$.ajax({url: "http://localhost:8000/todos/",
success: function(data){
this.setState({todos:data},function(){console.log(data)})}.bind(this),
cache: false});
}
这将发布一个新的todo
,并更新状态:
handleAddTodo(title,text){
$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos());
}
因此回调函数this.getTodos()将从服务器获取新数据。但服务器端似乎没有更新
在图中,第一个日志来自初始数据获取。最后一个是回调函数。我认为问题在于这一行:
$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos());
在这里,您需要传递一个函数,该函数将在post部件成功后触发,但您并没有传递函数,而是通过使用()
调用该函数来传递函数返回的值。通过这种方式,此函数将与post调用并行调用,检查网络部分,您将同时看到这两个调用
或使用:
或者这样写:
$.post("http://localhost:8000/todos/",
{title:title,text:text},
this.getTodos
);
并在构造函数中绑定gettoos
方法:
this.getTodos = this.getTodos.bind(this);
查看了解更多详细信息。我认为问题在于这一行:
$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos());
在这里,您需要传递一个函数,该函数将在post部件成功后触发,但您并没有传递函数,而是通过使用()
调用该函数来传递函数返回的值。通过这种方式,此函数将与post调用并行调用,检查网络部分,您将同时看到这两个调用
或使用:
或者这样写:
$.post("http://localhost:8000/todos/",
{title:title,text:text},
this.getTodos
);
并在构造函数中绑定gettoos
方法:
this.getTodos = this.getTodos.bind(this);
查看了解更多详细信息。您的查询是什么?在我发表文章后,服务器端应该添加一个新的todo,然后get request应该返回新的todo,但它仍然返回旧版本的todo,为什么?您的查询是什么?在我发表文章后,服务器端应该添加一个新的todo,然后get请求应该返回新的TODO,但它仍然返回旧版本的TODO,为什么?