2017-12-28 20 views
0

私のjsフロントエンドをNode/Expressバックエンドにリンクする際に問題があります。私のクライアント側のjsから私のサーバーに要求を行うと、私の要求は成功しますが、要求したページはレンダリングされません。ページが正常にAJAXポストリクエストでレンダリングされない

私が持っている

サーバー側:

app.get('/dashboard', (req, res) => res.render('dashboard/dashboard', { updates, agendaItems })); 

クライアント側:

$.ajax({ 
    type: 'GET', 
    url: '/dashboard', 
    data: context, 
    success: function() { 
     console.log('success'); 
    }, 
    error: function (jqXHR, textStatus, err) { 
     console.log(textStatus); 
    } 
}); 

が、私はエラーを取得していないと私はにconsole.log( '成功')は私のコンソールに示すのですか。私がhttp://localhost:27017/dashboardに行くか、私は郵便配達でリクエストを出しますが、私のルーティングは期待通りに機能します。私が持っている唯一の問題は、クライアントサイドのjsからルート要求を出すことです。私はボタンをクリックしてajaxリクエストを作成しています。

+0

をそれはかなり大規模かつ複雑なコードベースであるので、私はより多くのコードを投稿しませんでした。ダッシュボード/ダッシュボードの下にファイルがあります。私が言ったのと同じように、ページがレンダリングするlocalhost /ダッシュボードに行くことでリクエストを取得するとします。バックエンドは完全に機能しています(私は郵便配達員でもリクエストしています)。フロントエンドjsをExpressサーバーにリンクする際に問題があると確信しています。 –

答えて

1

「ajax」という用語は、「非同期のjavascriptとxml」(愚かな名前imhoの種類)を指します。これは、Webページで実行されているコードから行うことができるhttp要求です。ページのコードはレスポンスの処理に責任を負います。ブラウザはデフォルトで何もしません。

これはあなたのAJAX()呼び出しの成功の機能を解析するために使用することができ

など、それを解析してレンダリングすることで、要求を作成し、応答を処理するために、ブラウザに指示し、ブラウザをリダイレクトとは対照的であり、かつ必要に応じてレスポンスを表示しますが、より多くの作業が必要になります。通常、ブラウザのデフォルトの動作を可能な限り多く使用するようにアプリケーションを整理する方が簡単です。ユーザーをリダイレクトするために、ブラウザを向ける

は、この達成する:

window.location = "/dashboard"; 
+0

これは簡単な解決策として機能しますが、なぜ私のajaxリクエストが期待どおりに機能しないのかをより詳しく知るためのものです。 –

+0

が更新されました。基本的にあなたがajaxを使用する場合、あなたは応答を処理する責任があります。最近では、主にhtmlを転送するのではなく、表示用にhtmlにテンプレート化されたデータを転送するために使用されています。 –

+0

ありがとうございます、あなたの追加情報はいくつかを明確にします。私はあなたの提案を使用し、window.locationを使用して成功例をリダイレクトしました。私はまだ私の要求でいくつかのデータベースクエリを作成できます。今は期待どおりに動作します。 –

関連する問題