Azi*_*ima 4 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)=>{
console.log("api call sucessfull",res);
}).catch((err)=>{
console.log("api call unsucessfull",err);
this.props.toggleLoading(false);
})
Run Code Online (Sandbox Code Playgroud)
这是一个后端:
app.get('/next/api', verifyToken, function(req, res) {
console.log(req.body);
Run Code Online (Sandbox Code Playgroud)
})
但是我的{}身体变得空虚。我正在获取标头和其他数据,但没有数据。
看起来你只剩下两点让它工作了:
一:http 方法应该设置为POST而不是GET因为你想发送一些东西。
二:然后您可以添加 http 标头(就像您对授权标头所做的一样)Content-Type:'application/json`
在后端不要忘记使用某种身体解析器实用程序包,例如:body-parser并使用您的应用程序进行设置。
我想你的服务器正在使用 express,以下是你将如何使用 express :
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 */
Run Code Online (Sandbox Code Playgroud)
GET请求不应包含主体。
将方法从“ GET”更改为“ POST”
像这样:
axios.request({
method: 'POST',
url: `http://localhost:4444/next/api`,
headers: {
'Authorization': token
},
data: {
next_swastik: 'lets add something here'
},
})
Run Code Online (Sandbox Code Playgroud)
并更改您的api以期待发布
app.post('/next/api', verifyToken, function(req, res) {
console.log(req.body);
});
Run Code Online (Sandbox Code Playgroud)
要么
将data属性更改为params
axios.request({
method: 'GET',
url: `http://localhost:4444/next/api`,
headers: {
'Authorization': token
},
params: {
next_swastik: 'lets add something here'
},
})
Run Code Online (Sandbox Code Playgroud)
并更改api以注销参数
app.get('/next/api', verifyToken, function(req, res) {
console.log(req.params);
});
Run Code Online (Sandbox Code Playgroud)
就像@MaieonBrix所说的那样,请确保标头包含要发送的内容类型。
| 归档时间: |
|
| 查看次数: |
7522 次 |
| 最近记录: |