Ember Getting Started ガイドに従って TodoMVC アプリを構築しようとしていますが、バックエンドとして Rails で Ember-CLI を使用しています。残念ながら、クロス サイト ドメインに関する問題が発生しています。投稿リクエストをしようとすると、次のエラー メッセージが表示されます。
XMLHttpRequest cannot load http://localhost:3000/api/todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
Rails 側には、Rack Cors がインストールされています。Gemfile に追加しました:
gem 'rack-cors', :require => 'rack/cors'
そして、私のapplication.rb
ファイルには次のものがあります。
module Todoemberrails
class Application < Rails::Application
config.assets.enabled = false
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :put, :delete, :options]
end
end
end
end
そして、これは私のコントローラーです:
class Api::TodosController < ApplicationController
def index
render json: Todo.all
end
def show
render json: Todo.find(params[:id])
end
def create
todo = Todo.new(todo_params)
if todo.save
render json: todo, status: :created
else
render json: todo.errors, status: :unprocessed
end
end
private
def todo_params
params.require(:todo).permit(:title, :is_completed)
end
end
そして、私のEmberアプリ内app/adapters/application.js
には次のものがあります:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://localhost:3000/api'
});