2016-11-07 20 views
1

有VueJs和清爽的页面的问题。当我刷新我VueJs与特定的URL应用程序(例如:/标签/ 1),出现错误:“未捕获的SyntaxError:意外的标记<”。 我的服务器与创建的NodeJS我用ExpressJs。我的模板引擎是EJS。 我已经定义了一个路线:VueJs 2,和的NodeJS重新加载页面

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

在为ExpressJs的文档,它可以使用插件“连接历史-API的回退”,以取代阿帕奇“的.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请求符合预期,那么它可能是在你的VUE组件一个简单的错误 - 从/api/tag/1而不是加载你的标签数据(这得到了有效的JSON字符串),你可能会试图加载/tag/1(这只会让你index.html)。