我有一个Svelte应用程序,它从一个名为savechanges
的服务器端表单操作发出API POST请求。代码如下所示:
savechanges: async ({ params, request }) => {
const data = await request.formData();
const body = { toggled: data.get("toggled"), channel: data.get("channel"), role: data.get("role") };
const update_res = await fetch(`https://myapi.com`, {
method: "POST",
headers: { auth: API_KEY, "Content-Type": "application/json" },
body: body,
});
const update = await update_res.json();
return update ? update : { success: false };
}
字符串
如果我记录变量body
,我会看到这个输出
{
toggled: 'false',
channel: '793818346595418113',
role: '780844467565494302'
}
型
这就是它本来的样子
尽管如此,每当我试图发送这个请求时,我的终端会收到这个错误:
SyntaxError: Unexpected token '<', "<html>
<h"... is not valid JSON
at JSON.parse (<anonymous>)
at parseJSONFromBytes (/path/to/app/node_modules/undici/lib/fetch/body.js:580:15)
at successSteps (/path/to/app/node_modules/undici/lib/fetch/body.js:520:23)
at /path/to/app/node_modules/undici/lib/fetch/util.js:821:56
at node:internal/process/task_queues:140:7
at AsyncResource.runInAsyncScope (node:async_hooks:203:9)
at AsyncResource.runMicrotask (node:internal/process/task_queues:137:8)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
型
我不知道为什么我的请求是试图张贴HTML内容或它甚至来自哪里。如果有人能看到我在这里错过的东西,那将是惊人的!
1条答案
按热度按时间wn9m85ua1#
您可能会得到html,因为响应是一个错误页面。
将JavaScript对象转换为JSON。
字符串
另外,你可以在chrome devtools的netwrok选项卡下检查响应。