typescript npsb;字符导致nuxt 3生产服务器出现问题

bjg7j2ky  于 2023-02-10  发布在  TypeScript
关注(0)|答案(1)|浏览(128)

当发布一个html编码的文本到服务器时,服务器端代码在dev环境下工作正常,但是当我在netlify服务器上发布它时,同样的请求返回一个500错误,并且服务器端请求日志中间件只检测到一个没有主体的发布请求。
服务器/API/handlePost.post.ts

export default defineEventHandler(async (event) => {
  const { rawLog } = getQuery(event);
  if (rawLog != null) {
    const myRawLog = JSON.parse(rawLog as string) as rawLogArticle;
    //post it to the server...
    return { statusCode: 200, statusMessage: "Success" };
  } else {
    return { statusCode: 500, statusMessage: "SERVER ISSUE" };
  }

页面/post/write.vue

<script setup lang="ts">
    if (body.length > 0 && _title.length > 0) {
        const { data: response } = await useFetch('/api/handlePost', {
            method: "post",
            query: {
                rawLog: JSON.stringify(newLogContent)
            }
        })
        if (response.value?.statusCode == 200) {
            await navigateTo("/")
        } else {
            console.error("something went wrong")
        }
</script>

我使用tinyMCE文本编辑器的html内容作为文章主体,如果文章主体包含任何double enterspace at the end of a sentence,那么服务器会抛出500错误,但是chrome网络标签显示发送的请求确实包含文章主体。
从请求正文中手动删除npsb;字符可以完成请求,不会出现任何问题。

e0uiprwp

e0uiprwp1#

处理它的一个非常简单的方法是在服务器端返回中使用encodeURIComponent

相关问题