web-dev-qa-db-ja.com

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);
})

これがバックエンドです:

app.get('/next/api', verifyToken, function(req, res) {
console.log(req.body);

})

しかし、私は{}空のボディ。ヘッダーやその他のデータを取得していますが、データは取得していません。

6
Azima

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が言ったように、ヘッダーに送信するコンテンツタイプが含まれていることを確認してください。

3
pidizzle

それを機能させるには、あと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 */
2
MaieonBrix

これを試して

this.axios('realties', { params: this.filter })
0
Pablo Papalardo