Làm cách nào để vô hiệu hóa mã? Vì lý do nào đó, tôi đã đánh dấu nguồn gốc và tiêu đề được phép nhưng các yêu cầu ajax của tôi vẫn phàn nàn rằng nguồn gốc không được chính sách CORS của tôi cho phép ....
Bộ điều khiển ứng dụng của tôi:
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
các tuyến đường:
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"
Biên tập---
Tôi cũng đã thử:
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:methods => [:get, :post, :delete, :put, :options]
end
end
trong application.rb
- chỉnh sửa 2 ---
Tôi nghĩ có vấn đề là Tiện ích mở rộng của Chrome có thể không hỗ trợ CORS. Làm cách nào để tôi có thể tìm nạp thông tin khi bỏ qua CORS? Tôi nên phản hồi như thế nào đối với việc kiểm tra trước chuyến bay?