2016-11-07 3 views
1

У меня есть вопрос с VueJs и обновляющейся страницей. Когда я обновляю свое приложение VueJs определенным URL (например:/tag/1), возникает ошибка: «Uncaught SyntaxError: Неожиданный токен <». Мой сервер создан с помощью NodeJs, и я использую ExpressJs. Мой шаблонный двигатель - EJS. Я определил маршрут:VueJs 2, NodeJs и перезагрузка страницы

app.get('*', (request, response) => { 
    response.render('layouts/index') 
}) 

В документации ExpressJs, можно использовать плагин «Connect-история-Апи-запасной вариант» заменить «.htaccess» Апача, но это не может работать.

let app = express() 
app.use(history({ 
    verbose: true, 
    index: '/' 
})) 

В чем проблема?

Спасибо,

ответ

0

Это происходит потому, что ваш клиент приложение (vue.js) ожидает получить некоторый действительный объект JSON, но ваш сервер придающих HTML страницы.

При попытке конвертировать некоторую строку, такую ​​как <html><head>... в объект javascript, ваш JSON-анализатор не работает и дает эту ошибку. Для того, чтобы повторить это локально, откройте консоль разработчика и выполните следующую команду:

JSON.parse("<html></html>") 

Чтобы выяснить, что именно происходит не так, вы должны смотреть на вкладку сети консоли разработчика и посмотреть на ответы сервера для API запросы - вы ожидаете JSON, но сервер может служить index.html

Предполагая, что ваша сторону сервера все хорошо и обрабатывает запросы API, как и ожидались, то это может быть просто ошибка в компоненте ви - вместо загрузки данных тегов из /api/tag/1 (который получает действительную строку JSON), возможно, вы попытаетесь загрузить /tag/1 (который получит только ваш index.html).