Javascript 未在axios请求中发送正文数据
我试图通过axios请求将数据发送到后端脚本,但正文看起来是空的 以下是从前端发送的请求:Javascript 未在axios请求中发送正文数据,javascript,node.js,reactjs,axios,Javascript,Node.js,Reactjs,Axios,我试图通过axios请求将数据发送到后端脚本,但正文看起来是空的 以下是从前端发送的请求: axios.request({ method: 'GET', url: `http://localhost:4444/next/api`, headers: { 'Authorization': token }, data: { next_swastik: 'lets add something here' }, }).then((res)=>{ c
axios.request({
method: 'GET',
url: `http://localhost:4444/next/api`,
headers: {
'Authorization': token
},
data: {
next_swastik: 'lets add something here'
},
}).then((res)=>{
console.log("api call sucessfull",res);
}).catch((err)=>{
console.log("api call unsucessfull",err);
this.props.toggleLoading(false);
})
这是一个后端:
app.get('/next/api', verifyToken, function(req, res) {
console.log(req.body);
})
但是我得到了一个空的身体。我正在获取标题和其他数据,但未获取数据。获取请求不应包含正文 将方法从“GET”更改为“POST” 像这样:
axios.request({
method: 'POST',
url: `http://localhost:4444/next/api`,
headers: {
'Authorization': token
},
data: {
next_swastik: 'lets add something here'
},
})
并更改您的api以期待发布
app.post('/next/api', verifyToken, function(req, res) {
console.log(req.body);
});
或
将data
属性更改为params
axios.request({
method: 'GET',
url: `http://localhost:4444/next/api`,
headers: {
'Authorization': token
},
params: {
next_swastik: 'lets add something here'
},
})
并更改api以注销参数
app.get('/next/api', verifyToken, function(req, res) {
console.log(req.params);
});
就像@MaieonBrix所说的,确保你的标题包含你要发送的内容类型。看来你只有两点可以让它正常工作:
- 第一:http方法应该设置为
,而不是POST
,因为你想发送一些东西GET
- 第二:您可以添加http头(就像您对授权头所做的那样)
:'application/json`内容类型
const express = require('express');
const app = express();
const bodyParser = require('body-parser')
const jsonParser = bodyParser.json();
app.use(jsonParser); // use it globally
app.get('your_route', jsonParser, otherMiddleware, (req, res) => ...); // use it for specific routes
/* ... rest of your code */
试试这个
this.axios('realties', { params: this.filter })
如果出现“bodyParser已弃用”错误,请尝试以下操作-
app.use(express.json())//解析JSON正文(适用于Express 4.16+)
如果您想从HTTP请求主体获取数据,请使用“post”方法。HTTP请求不再禁止获取主体,建议将其更改为post对我们这些使用无法控制的外部API的人并没有帮助。我的答案不是让人们点击他们无法控制的外部API,这是为了你上面看到的问题。我还说你“不应该”有一个可能你“不可能”得到的答案,但这更取决于现在的观点。既然现在的标准不再明确排除GET机构,我想说“不应该”是一个非常个人的观点。当你搜索关于HTTP GET Body的答案时,这个答案也会出现在谷歌上,所以从这个意义上说它是没有帮助的。如果你确定你是通过POST发出请求的,那么你的问题可能是bodyParser。请确保您的express实例正在使用它。