2016-04-03 7 views
0

私が知っている唯一のバックエンドフレームワークであるため、Railsをバックエンドとして使用して単一ページアプリケーションを作成しようとしています。私はすべての私のファイルをパブリックフォルダに入れ、npmとjspmもインストールしたので、javascriptの機能を使うことができます。私がやろうとしている何パブリックフォルダ内のindexアクションからindex.htmlへのJSONの配信

は、パブリックフォルダにあるのindex.htmlファイルにJSONデータとして映画のコレクションを送る私の映画コントローラ

def index 
    @movies = Movie.all 
    render :json => @movies 
    end 

でこのindexアクションを持っています。私は私のclient.jsファイル内のデータを取得するために、「フェッチ」関数を使用しています:

let api_url = 'http://127.0.0.1:3000' 

fetch(api_url).then(function(resp) { 
    resp.json().then(function(movies) { 
    console.log(movies) 
    }) 
}) 

これは、次のエラーが発生:

Uncaught (in promise) SyntaxError: Unexpected token < 

私はこれが何を意味するのかわからないし、私はこれについて正しく行くつもりならば。どんな助けでも大歓迎です。これに

+0

を取得したのですか? – uzaif

+0

あなたのapiのURLは主な問題だと思いますか? – uzaif

+0

はい、すべてのムービーをインデックスアクションの@movies変数に割り当てました。 – Banner

答えて

1

変更を:

let api_url = 'http://127.0.0.1:3000/movies' 

同じ両方:あなたは、コントローラのindexメソッド内のすべての映画を

fetch(api_url).then(function(resp) { 
    resp.json().then(function(movies) { 
    console.log(movies) 
    }) 
}) 

OR

fetch(api_url).then(r => r.json()) 
    .then(data => console.log(data)) 
    .catch(e => console.log('error')) 
+0

ありがとう、それは動作します。 http://127.0.0.1:3000に「/ movies」を追加するとデータが返される理由を説明できますか? – Banner

+0

'root 'movies#index''は何も応答していません。あなたは 'resource:movies'にそれを使用しています。 – 7urkm3n

+0

また、 'rake db:migrate:reset'を実行するとDB列のバグがあります。 – 7urkm3n

関連する問題