我正在通过axios.post向我的服务器端点发送一个JSON对象,并且即使在axios内它可以正确地控制台,数据似乎也以空着控制台。
我的前端在端口3000和服务器端口3400上运行。
我的axios帖子:
getRefundCalc(props) {
console.log('the props of the card, are they different for each card?' + JSON.stringify(props))
var headers = {
'Content-Type': 'application/json'
}
axios.post(`http://localhost:3400/refundCalc`, props, { headers: headers })
.then(res => {
console.log('props within axios ++++++++++++++++++ 2' + JSON.stringify(props))
})
}
控制台可以与'props'一起正常工作,我将在最后添加对象本身。 这是我的app.post:
app.post('/refundCalc', function (req, res) {
console.log('response from client - get refund request ' + JSON.stringify(req.body))
console.log('request from client - get refund request ' + req.body)
})
我的服务器设置如下:
let multer = require('multer');
const server = app.listen(port, () => console.log(`Example app listening on port ${port}!`))
var cors = require('cors')
app.use(cors())
const express = require('express');
const app = express();
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
这是我从app.post端点得到的响应:
response from client - get refund request {}
request from client - get refund request [object Object]
在我的前端甚至服务器端都没有任何错误。如您所见,当我对请求进行字符串化时,它只是空的!
我要发送的数据采用以下格式:
{
"data": {
"items": {
"id": 1580841107519,
"variant_id": 7051095179327,
"title": "Fashion Summer Floral Print Dress",
"name": "Fashion Summer Floral Print Dress - Black / L",
"quantity": 1,
"price": "16.76",
"product_id": 561553145919
},
"imageLinks": {
"product_id": 561553145919,
"image_src": "https://cdn.shopify.com/s/files/1/0013/6688/4415/products/product-image-308841702.jpg?v=1521568884",
"varrient_id": [7051095179327, 7051095212095, 7051095244863, 7051095277631]
},
"id": 0
},
"classes": {
"card": "MediaCard-card-1",
"media": "MediaCard-media-2"
}
}
我的预期结果是,我可以在服务器端点上管理我的数据,所以我知道我已成功接收并可以使用它,感谢您提供的任何帮助。
答案 0 :(得分:2)
由于您以JSON格式发送主体,因此您需要在服务器端使用JSON解析器来解析主体。您将需要添加以下行:
app.use(bodyParser.json());