আমি কীভাবে কর্স অক্ষম করতে পারি? কিছু কারণে আমি অনুমতিপ্রাপ্ত উত্স এবং শিরোলেখগুলিকে ওয়াইল্ড করেছিলাম তবুও আমার এজাক্স অনুরোধগুলি এখনও অভিযোগ করে যে আমার সিওআরএস নীতি দ্বারা উত্সটির অনুমতি দেওয়া হয়নি ....
আমার অ্যাপ্লিকেশন নিয়ামক:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :current_user, :cors_preflight_check
after_filter :cors_set_access_control_headers
# For all responses in this controller, return the CORS access control headers.
def cors_set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = "1728000"
end
# If this is a preflight OPTIONS request, then short-circuit the
# request, return only the necessary headers and return an empty
# text/plain.
def cors_preflight_check
if request.method == :options
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = '1728000'
render :text => '', :content_type => 'text/plain'
end
end
private
# get the user currently logged in
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
end
রুট:
match "*all" => "application#cors_preflight_check", :constraints => { :method => "OPTIONS" }
match "/alert" => "alerts#create"
match "/alerts" => "alerts#get"
match "/login" => "sessions#create"
match "/logout" => "sessions#destroy"
match "/register" => "users#create"
সম্পাদনা করুন ---
আমি চেষ্টাও করেছি:
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:methods => [:get, :post, :delete, :put, :options]
end
end
in application.rb
--edit 2 ---
সমস্যাটি হ'ল ক্রোম এক্সটেনশনগুলি আমার মনে হয় যে CORS সমর্থন করে না। আমি কীভাবে সিওআরএসকে বাইপাস করে তথ্য আনতে পারি? প্রিফ্লাইট চেকটিতে আমার কীভাবে প্রতিক্রিয়া জানানো উচিত?