2016-11-07 10 views
1

私はVueJsと最新のページで質問があります。特定のURL(例:/ tag/1)で私のVueJsアプリケーションを更新すると、エラーが発生します: "Uncaught SyntaxError:予期しないトークン<"。 私のサーバーはNodeJsで作成されており、私はExpressJを使用しています。私のテンプレートエンジンはEJSです。 は私はルート定義されています:VueJs 2、NodeJs、リロードページ

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

ExpressJsのドキュメントでは、それは、Apacheの「.htaccessファイルを」交換する「の接続履歴-API-フォールバック」プラグインを使用することが可能ですが、これは動作しません。

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

問題点は何ですか。あなたのクライアントアプリケーション(vue.js)は、いくつかの有効なJSONオブジェクトを受け取るために期待しているので、これが起こっているが、あなたのサーバがHTMLページを与えている

答えて

0

おかげで、。

<html><head>...のような文字列をjavascriptオブジェクトに変換しようとすると、JSONパーサーが失敗し、そのエラーが発生します。 、ローカルでこれを複製し、あなたのデベロッパーコンソールを開き、次のコマンドを実行するには:間違って起こっている正確に何を見つけるには

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

を、あなたはデベロッパーコンソールのネットワークタブに見て、APIのためのサーバーの応答を調べる必要がありますリクエスト - JSONが期待されますが、サーバーがサービスされている可能性がありますindex.html

サーバー側がすべて正常であり、期待どおりにAPIリクエストを処理すると仮定すると、vueコンポーネントには単純なエラーがある可能性があります。有効なJSON文字列を取得した場合)、/tag/1をロードしようとしている可能性があります(index.html)。