Я довольно новичок как в NodeJS, так и в VueJS. Я хочу отправить объект с именем user из GET route
в серверное приложение NodeJS и получить его в моем компоненте vueJS, используя axios для обработки запроса. Все, что я получаю, это HTML-строка в response.data вместо пользовательского JSON. Как получить объект JSON?
Я пытался добавить res.setHeader('Content-Type', 'application/json');
в GET-маршрутизатор, прежде чем делать res.json (пользователь) для отправки пользователю, но те же HTML-данные в vue.
У меня была другая ошибка, и я использовал CORS, я включил app.use(cors())
в мой файл nodeJS app.js. Нужно ли добавить к нему некоторую конфигурацию, чтобы получить объект JSON?
это из маршрутов / индекса.js (где у меня есть GET-маршрутизатор '/ dashboard')
router.get('/dashboard', function(req, res, next) {
res.setHeader('Content-Type', 'application/json');
//some code (to get user...)
// the below line displays the user data as JSON in the browser
res.json(user);
}
это из компонента vue, где я хочу получить пользователя как объект JSON и использовать его:
<script>
import axios from 'axios';
export default {
name: 'DashboardIndex',
data(){
return {
user: {},
}
},
methods: {
getUser(){
axios
.get("http://localhost:3000/dashboard/")
.then(response => {
// response.data returns an html string
console.log(response);
this.user = response.data;
})
.catch(error => alert(error));
}
},
mounted() {
this.getUser();
}
}
</script>
это ответ, который я записываю на консоль:
{data: "<!DOCTYPE html><html lang="en" id="payments-over…14], Mon, 07 Oct 2019 09:23:47 GMT...</html>", status: 200, statusText: "OK", headers: {…}, config: {…}, …}
Я хочу, чтобы пользовательский объект был отправлен как объект JSON и смог получить его в компоненте vue. Заранее спасибо!