【问题标题】:POST function on server returns undefined服务器上的 POST 函数返回未定义
【发布时间】:2022-08-17 18:52:32
【问题描述】:

我有一个前端,在这种情况下我定义了一个字符串videoLink。 除此之外,我还有一个在单击按钮时启动的异步功能。

//sveltekit

async function addToQueue(){
        console.log(videoLink);
        const res = await fetch(\'/tool/server\', {
            method: \'POST\',
            body: {
                videoData: videoLink
            }
        })
        
        const json = await res.json()
        console.log(json);
        videoLink = \"\";
    }

这个函数向我的 server.js 文件发送一个带有 fetch 的 http-post 请求。

/** @type {import(\'@sveltejs/kit\').RequestHandler} */

export async function POST(event) {
  const data = await event.request.body;
  const link = data.videoData;
  console.log(link)
}

当我运行后请求(通过单击前端中的按钮)时,我的服务器记录undefined。据我所知,服务器会收到 POST 请求,因为它仅在我单击按钮时才会记录。

但是为什么它返回undefined?我试图解析 json,但它没有工作。谁能帮我?我的 JSON 有什么问题?

  • 什么JSON ...?

标签: javascript post sveltekit


【解决方案1】:

在浏览器中打开开发者工具。查看网络选项卡。检查您发送的请求负载:

[object Object]

fetch 不支持 body 选项的普通对象。它将使用 toString() 方法将它们转换为字符串。

您需要提供:

  • fetch 支持的对象。常见的选项是
  • 编码字符串(如JSON.stringify的输出)还设置content-type HTTP 请求标头以匹配

您选择哪种取决于服务器端代码支持的编码。

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多