запрос nuxt axios.post с пустым телом - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь получить nuxt с работающими axios.Я делаю следующий почтовый запрос (store / index.js):

login({ commit }, { username, password }) {
  const data = JSON.stringify({
    password
  , username
  })
  console.log('store login ', username, password)
  this.$axios.post('http://localhost:3000/api/login', data)  
  .then(res => {
    commit('SET_USER', res.data)
  })
  .catch(error => {
    console.log(error.response)
  })
}

Мой бэкэнд выглядит так (api / auth.js):

const express           = require('express')
const session           = require('express-session')
const body_parser       = require('body-parser')
const app               = express()
const router            = express.Router()

app.use(body_parser.json())
app.use(body_parser.urlencoded({ extended: true }))
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false
}))

router.post('/login', (req, res) => {
  console.log('try to login ', req.body)
  if (!req.body)
    return res.status(401).json({ message: 'No body' })
  if (req.body.username === 'demo' && req.body.password === 'demo') {
    req.session.auth_user = { username: 'demo' }
    console.log('logged in')
    return res.json({ username: 'demo' })
  }
  res.status(401).json({ message: 'Bad credentials' })
})

Моя проблема в том, чтоreq.body всегда не определено.Но в сообщении об ошибке я вижу, что параметры отправлены.(config.data)

enter image description here

У кого-нибудь есть идеи, по которым я скучаю?Я использую body-parser и проверил все 100 раз.Я думаю, это что-то совершенно очевидно, но я не вижу этого.

Мой nuxt.config.js:

module.exports = {
  ...
  modules: [
    '@nuxtjs/axios'
  , '@nuxtjs/auth'
  ],
  router: {
    middleware: ['auth']
  },
  serverMiddleware: ['@api/auth']
  ...
}

1 Ответ

0 голосов
/ 04 декабря 2018

Вероятно, вы принимаете эту ошибку также.Это вызвано политикой cors.

Доступ к XMLHttpRequest в 'http://localhost:3000/.......' из источника' http://127.0.0.1:3000' заблокирован политикой CORS: Ответ на запрос предполетной проверки непройти проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

такая же проблема возникла в моем проекте.

в строке изменения индекса index.js сервера

const host = process.env.HOST || 'localhost'

и nuxt.config.js

axios: {
baseURL: 'http://localhost:YOUR_PORT'
 },
...