我对VueJs和刷新页面有个问题。当我用特定的URL(例如:/tag/1)刷新VueJs应用程序时,出现错误:“Uncattle SyntaxError:Expected token<”。我的服务器是用NodeJs创建的,我使用ExpressJS。我的模板引擎是EJS。我定义了一条路由:
app.get('*', (request, response) => {
response.render('layouts/index')
})
在ExpressJs的文档中,可以使用插件“connect-history-api-fallback”来替换Apache的“.htaccess”,但这是行不通的。
let app = express()
app.use(history({
verbose: true,
index: '/'
}))
问题是什么?
谢谢,
之所以发生这种情况,是因为您的客户端应用程序(vue.js)期望接收一些有效的JSON对象,而您的服务器却给出了一个HTML页面。
当尝试将...
之类的字符串转换为javascript对象时,JSON解析器失败并给出该错误。要在本地复制,请打开开发人员控制台并运行以下命令:
JSON.parse("<html></html>")
要找出问题的具体所在,您需要查看developer console的network选项卡,并查看API请求的服务器响应--您希望使用JSON,但服务器可能提供index.html
假设您的服务器端一切正常,并按预期处理API请求,那么可能是vue组件中的一个简单错误--您可能试图加载/API/tag/1
(它获得有效的JSON字符串)中的标记数据,而不是从/tag/1
(它只获得index.html
)。