【发布时间】:2021-01-23 20:26:37
【问题描述】:
我有一个快速服务器,它的 API 端点为 /todo/set,它获取 JSON、POST 请求。 此 API 使用 cors。
此外,我有一个 Cordova android 应用程序(使用 Svelte 构建),我正在尝试通过 fetch 向 express 服务器发出请求。这是请求的样子:
fetch(`http://localhost:8080/todo/set`, {
method: "post",
body: JSON.stringify({
'Text': 'Test!'
}),
headers: {
'Content-Type': 'application/json',
}
})
这不起作用,服务器没有收到请求。因此,我尝试对其进行了一些调试,然后这样做了:
fetch(`http://localhost:8080/todo/set`, {
method: "post",
body: JSON.stringify({
'Text': 'Test!'
}),
headers: {
'Content-Type': 'application/json',
}
}).then(res => alert(res)).catch(err => alert(err))
运行它后,我在警报中收到“TypeError: Failed to fetch”。所以我又试了一次,这次在 Cordova 之外检查了它(网站上只有 Svelte)。这次一切正常,我从服务器获得了状态 200。
- 它还通过 Postman 进行了测试,并且按预期工作
所以我知道这个问题与 Cordova 有关,但我找不到它发生的原因。有人知道我该如何解决吗?
更新:尝试将浏览器平台添加到 Cordova 并在那里尝试。它正在浏览器上运行。
【问题讨论】:
-
您是否在移动设备上测试 cordova 应用程序?
-
@OmG3r 在模拟器和我的设备上都试过了。得到相同的结果:/
-
尝试用你的本地IP地址192.168.1.x替换'localhost'(你需要替换x),你可以在windows使用'ipconfig'找到它,在linux使用'ifconfig'找到它跨度>
-
也许添加什么版本和平台,这会有所帮助
-
@OmG3r 试过了,还是不行。我什至在外部设备上也试过了。
标签: javascript typescript express cordova svelte