React Native + fetch + API:DELETE 请求在 App 中失败,在 Postman 中有效

IT技术 json django api reactjs react-native
2021-05-22 06:10:45

我们有一个通过 React Native 查询的 API。

GET、POST 请求在我们的应用程序或 Postman 中都可以完美运行。

DELETE 不适用于 App,但同样的请求适用于 Postman。

更奇怪的是:

如果我们使用 Django 或 Postman 删除资源,在手机上从我们的应用程序发出完全相同的请求会给我们一个 404 响应,告诉我们它确实被删除了。

这意味着我们的应用程序的调用应该可以工作,因为我们从 API 得到了答案!

所以,基本上,DELETE 在应用程序中不起作用,但如果我们从其他地方删除资源,它的行为就好像它真的有效一样。

我们用两部不同的手机对其进行了测试,以防万一……而且我们正在使用 Expo。

我们的 DELETE 请求示例:

https://apiurl/reservations/id_num {"method":"DELETE","headers":{"Accept":"application/json","Content-Type":"application/json","X-App-令牌":"blablatoken","Authorization":"JWT blablasuperlongtoken"}}

更新:MattyK14 提出的问题很好,我们得到了 200 响应,这应该是我们的 GET 响应。我们在这条路径上进行了调查,但似乎找不到任何东西。

我们正在使用 Axios 重建 API,因为我们找不到任何东西,我们将进行检查。

1个回答

发现错误!

我们需要在 API URL 的末尾添加一个斜杠。 如果 DELETE 请求没有尾部斜杠,Django 会自动将它转换为 GET 请求。 感谢您对 Matty 和 Arman 的评论。