Rails サーバーから RESTful サービスを作成しようとしています。私はオンラインでチュートリアルを見てきましたが、どうやら私は何か間違ったことをしているようです。私のエラーはCORSの問題です。ユーザーモデルとコントローラーがあります。ユーザーコントローラーで、ヘッダーを変更して、どのサイトでもサーバーから情報を取得できるようにしようとしています。
class UsersController < ApplicationController
def options
if access_allowed?
set_access_control_headers
head :ok
else
head :forbidden
end
end
private
def set_access_control_headers
# headers['Access-Control-Allow-Origin'] = request.env['HTTP_ORIGIN']
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Max-Age'] = '1000'
headers['Access-Control-Allow-Headers'] = '*,x-requested-with'
end
def access_allowed?
allowed_sites = '*' #you might query the DB or something, this is just an example
return allowed_sites.include?(request.env['HTTP_ORIGIN'])
return true
end
end
また、ルートを設定して、サーバーがヒットしたときに「オプション」アクションに移動するようにしました。
resources :users, :only => [:create]
match '/users', :controller => 'users', :action => 'options', :via => :get
開発マシンで html ページを作成しましたが、Chrome から開いています (これが問題かどうかはわかりません)。ユーザーを取得しようとすると、
OPTIONS http://www.*****.com:3000/users 404 (Not Found) jquery.js:3
XMLHttpRequest cannot load http://www.****.com:3000/users. Origin file:// is not allowed by Access-Control-Allow-Origin.
誰かが私が間違っていることを教えてください。または、私を助けることができる方向に向けてください。