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);
})
これがバックエンドです:
app.get('/next/api', verifyToken, function(req, res) {
console.log(req.body);
})
しかし、私は{}
空のボディ。ヘッダーやその他のデータを取得していますが、データは取得していません。
GETリクエストには本文を含めないでください。
メソッドを「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が言ったように、ヘッダーに送信するコンテンツタイプが含まれていることを確認してください。
それを機能させるには、あと2つのポイントしかないようです。
one:何かを送信したいので、httpメソッドはPOST
ではなくGET
に設定する必要があります。
2:次に、httpヘッダーを追加できます(承認ヘッダーで行ったように)Content-Type
: 'application/json`
バックエンドでは、次のようなボディパーサーユーティリティパッケージを使用することを忘れないでください: body-parser そしてアプリでセットアップ。
私はあなたのサーバーがエクスプレスを使用していると思います、これがエクスプレスでそれを行う方法です:
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 })