svelte - SvelteKit req.body 未定义
问题描述
我正在尝试设置 SvelteKit 以将其与我的 CMS 一起使用。
我正在从我的 CMS in 中api/query.js
获取数据,并从api/query
in 中获取数据index.svelte
。
它工作得很好,我可以获取整个数据,但如果我在获取请求中包含正文,我会收到错误“无法读取未定义的属性‘拆分’”。代码:
// api/query.js
export async function post(req) {
const url = API_URL;
const auth = Buffer.from(`${API_USER_EMAIL}:${API_USER_PASSWORD}`).toString('base64');
const res = await fetch(url, {
method: 'POST',
headers: {
'Authorization': `Basic ${auth}`,
},
body: JSON.stringify(req.body),
});
const data = await res.json();
return {
status: data.code,
body: data
}
}
// index.svelte
export async function load({ fetch }) {
const res = await fetch('/api/query', {
method: 'POST',
// body: JSON.stringify({
// query: 'site.title',
// }),
});
const data = await res.json();
return {
status: data.status || 200,
props: data
}
}
代码中被注释掉的部分是导致错误的部分。如果我console.log(req.body)
在api/query.js
它返回undefined
。
有没有办法可以使用 Express.js 正文解析器?或者有没有其他方法可以解决这个错误?
解决方案
content-type
为两条路线设置标头。
还要确保所有标题键都是小写的。
例子:
...
headers: {
'authorization': `Basic ${auth}`,
'content-type': 'application/json'
},
...
推荐阅读
- react-native - 有没有一种可能的方法可以在 react-native-router-flux 中使用 react-native-router-flux 制作子标题
- unity-container - 像使用 Unity IoC 一样映射
- angularjs - 尝试检索 JSON 时出现角度错误
- python - 带有 mpi4py 的 Openmpi 不能在多个节点上工作
- javascript - d3.js 使用 Class 和 Attr 为文本添加颜色
- javascript - 将 html 表单发送到 Django 项目中的电子邮件地址的最佳方式?
- image - 尝试在空对象引用上调用接口方法 java.lang.String com.facebook.react.bridge.ReadableMap 等
- reactjs - Meteor + React - 错误:目标容器不是 DOM 元素
- python - Tensorflow- 两个二维张量的笛卡尔积
- python - 由于“环境错误:[错误 13]:权限被拒绝:'usr/local/bin/f2py'”而无法安装软件包