【问题标题】:Pre-flight OPTIONS request delays my DELETE飞行前 OPTIONS 请求延迟了我的 DELETE
【发布时间】:2018-06-18 00:24:29
【问题描述】:

问题太牵涉到SO,请忽略。

和你一样。

【问题讨论】:

  • 您的问题不是因为 OPTIONS 预检,而是因为您不了解异步性 - 但没有一点代码,这只是一种直觉
  • 在第一个请求完成之前不要发出第二个请求。如果您连续调用它们,则无法保证完成顺序甚至到达服务器的顺序
  • @JaromandaX 请参阅编辑。我理解 async 很好,并意识到我不应该依赖请求排序;但是,我看不出数据存储如何通过这种异步活动保持完整性。
  • 嗯,问题不在于预检。您没有清楚显示的代码并不能保证请求的顺序 - 但是由于您没有显示任何代码,它仍然只是一种直觉
  • @JaromandaX 举个例子吧

标签: javascript ajax reactjs redux cors


【解决方案1】:

更改您的导航呼叫以等待fetch 承诺解决。从本地商店删除可能应该做同样的事情,但这不是手头的问题

// AJAX to delete from server
fetch({
  url: '/thing/' + this.props.id,
  method: 'delete'
}).then(_=> this.props.navigate('/things/'));

【讨论】:

  • 这是唯一的方法。不能保证DELETE 会在GET 之前到达服务器。
  • 问题是获取不会直接发生在组件中;该组件调用一个动作创建者,它在调度reducer用来删除对象的动作的同时异步触发获取...
  • 我有很多reducer;一个负责处理所有 API 调用,另一个存储这种类型的数据。当单击“删除”按钮时,它们都对组件触发的action.type “做”一些事情。
  • 此外,如果获取发生在组件外部,那么您的示例需要反映这一点。帮助我们帮助您。
  • @charlietfl 是的,它是一种被称为“乐观更新”的模式。
猜你喜欢
  • 2016-06-28
  • 2014-12-27
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2018-04-13
  • 2018-10-25
相关资源
最近更新 更多