Rails - 不检查 CSRF 令牌的控制器
Rails - Controller that does not check for CSRF token
在我的 rails 应用程序中,其中一个控制器显示 public 我希望托管在不同域上的网站从中提取数据的统计信息。 (app.donornest.com/stats.json)
我的控制器代码如下:
class StatsController < ApplicationController
require 'ostruct'
skip_before_action :verify_authenticity_token
respond_to :html, :xml, :json, :csv
def index
@stats = OpenStruct.new
@stats.users = User.all.count
@stats.organizations = Organization.all.count
@stats.donors = Person.all.count
respond_to do |format|
format.json {render json: @stats}
end
end
end
我认为行 skip_before_action :verify_authenticity_token 就足够了,但是当我尝试从控制台向该页面发出请求时,出现以下错误:
XMLHttpRequest cannot load http://app.donornest.com/stats.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
我该如何解决这个问题?
这看起来不像是真实性令牌错误。
看起来像 cross-domain 访问控制错误。检查此答案以在 rails 中为启用 CORS 的客户端启用访问控制 headers:
在我的 rails 应用程序中,其中一个控制器显示 public 我希望托管在不同域上的网站从中提取数据的统计信息。 (app.donornest.com/stats.json)
我的控制器代码如下:
class StatsController < ApplicationController
require 'ostruct'
skip_before_action :verify_authenticity_token
respond_to :html, :xml, :json, :csv
def index
@stats = OpenStruct.new
@stats.users = User.all.count
@stats.organizations = Organization.all.count
@stats.donors = Person.all.count
respond_to do |format|
format.json {render json: @stats}
end
end
end
我认为行 skip_before_action :verify_authenticity_token 就足够了,但是当我尝试从控制台向该页面发出请求时,出现以下错误:
XMLHttpRequest cannot load http://app.donornest.com/stats.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
我该如何解决这个问题?
这看起来不像是真实性令牌错误。
看起来像 cross-domain 访问控制错误。检查此答案以在 rails 中为启用 CORS 的客户端启用访问控制 headers: