Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery post+;获取数据_Javascript_Jquery_Django_Reactjs_Httprequest - Fatal编程技术网

Javascript 使用JQuery post+;获取数据

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

我使用它从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
,并更新状态:

  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,为什么?