我使用VueJs创建了一个小型示例应用程序,并创建了一个C#REST API来存储和检索SQL Server后端的数据。
为了测试,我创建了一个带有表单的简单网页来创建“注释”。该注释由以下函数'saveData()'存储:
saveData()
{
let promiseStack = [];
var jsondata = JSON.stringify(this.note);
promiseStack.push(this.$http.post('REST_API/note', jsondata));
Promise.all(promiseStack).then(data =>
{
this.$http.get('REST_API/note');
this.$router.push({ name: 'viewnotes', params: { id: data[0].body.id }})
}, error =>
{
console.log(error);
});
}
我尝试使用promise来等待后端中的'store'操作完成,并在完成promise后发出GET请求以检索所有注释。
但是,promise中的get请求不会返回任何数据。如果我稍后手动发出get请求,我将检索先前存储的数据。
所以我查看了C#REST API。目前有两个函数:createNote(...),getAllNotes(...)。当使用毫秒精度调用这些函数时,我使用StreamWriter来记录文件系统。我看到的是'createNote'是在'getAllNotes'之后调用的。所以我怀疑API工作正常,但是我使用promises的方式似乎非常错误。
也许有人有提示?
更新
我知道GET请求不会使用Chromium中的开发人员工具栏返回任何数据。回复是空的
网络标签中的开发人员工具栏显示请求以正确的顺序提交,因此首先发出“POST”请求
答案 0 :(得分:0)
我似乎发现了这个问题。我的“保存”链接中有一个“href”标记,触发了早期路由。预期的'POST'和'GET'被正确触发,但由于链接中的'href'标记,在某处之间还有另一个'GET',即使它是空的。
我删除了标记,现在它按预期工作。