我正在使用axios将JSON对象作为参数发送到我的api。在它发布请求之前,我的数据作为JSON对象开始。在服务器端,当我console.log(req.params)
时,数据被返回
[object Object]
当我使用typeof
时,它返回了一个字符串。然后我开始使用JSON.parse()
。但是,当我使用它时,它返回了一个错误
SyntaxError:位置1的JSON中的意外标记o
我寻找解决方案,但我尝试的任何东西似乎都没有用。现在我想我正在错误地将数据发送到服务器。
这是我使用axios的帖子请求:
createMedia: async function(mediaData) {
console.log("SAVING MEDIA OBJECT");
console.log(typeof mediaData)
let json = await axios.post(`http://localhost:3001/api/media/new/${mediaData}`)
return json;
}
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
您需要使用axios
更新代码,以便在请求正文中提供mediaData
而不是网址:
createMedia: async function(mediaData) {
console.log("SAVING MEDIA OBJECT");
console.log(typeof mediaData)
let json = await axios.post(`http://localhost:3001/api/media/new/`, mediaData)
return json;
}
在后端(假设您在此处使用express
),您需要将应用配置为使用bodyParser
:
var express = require('express')
, app = express.createServer();
app.use(express.bodyParser());
然后在您的控制器中将console.log(req.params)
更新为console.log(req.body)
;然后重新启动节点服务器