Rails:在哪里启用Access-Control-Allow-Origin
Rails: where to enable Access-Control-Allow-Origin
我想在我的coffeescript文件中加载一个链接,像这样:
$.ajax hobby.link,
type: 'GET'
dataType: 'html'
error: (jqXHR, textStatus, errorThrown) ->
console.log "AJAX Error"
success: (data, textStatus, jqXHR) ->
console.log "Successful AJAX call"
和已安装
gem 'rack-cors', :require => 'rack/cors'
和添加
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
到我的应用程序。rb,但每次我得到
XMLHttpRequest无法加载http://www.example.com/。请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:3000'。
我还需要做什么才能使这些加载工作?
请注意,我目前正在对一行中的三个不同链接执行ajax调用。
Rack::Cors
处理允许或拒绝您自己的网站和域名的CORS。不能影响其他域的CORS配置。
例如,您的网站可能是http://example.com
,并且您试图向http://example.net
发送AJAX请求。因为example.net不在您的控制之下,所以您不能控制它的CORS设置,Rack::Cors
也不能。这意味着,如果example.net不允许AJAX请求,您将无能为力。
与您试图调用的服务的管理员交谈,看看是否可以说服他们允许AJAX请求(至少来自您的域)。
错误代码表明您试图加载的第三方网站不允许来自自己域外的请求。这不是你的应用程序的问题,它们不允许不是来自它们自己域的请求。
这是针对CSRF攻击的一种措施。
相关文章:
- 如何解决Access Control Allow Origin错误
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- XMLHttpRequest : 不被 access-control-allow-origin 所允许
- 可以在Access Control Allow Origin中指定端口
- Access Control Allow Origin阻止我访问google api,尽管使用了dataType:
- JSONP跨原点错误'不存在Access Control Allow Origin标头'
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- Angular$resource调用不被Access Control Allow使用Safari接受,而被Chrome接
- Instagram API access_token request and Access-Control-Allow-
- 方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method
- Yahoo - OAuth2 - SocialAPI:在初始响应中不返回“Access-Control-Allow-Or
- 在 Safari 上使用通用分析的 Access-Control-Allow-Origin 不允许
- Windows上的CouchDB说请求的资源上不存在“Access-Control-Allow-Origin”标头
- XMLHttpRequest 无法加载 http No Access-Control-Allow-Origin head
- Emberjs/Chrome/FFox:预检中的数字 Access-Control-Request-Headers
- Simple XMLHttpRequest 失败,Access-Control-Allow-Origin 标头为 nul
- Flickr API OAuth Access Token request and Access-Control-All
- jquery.ajax Access-Control-Allow-Origin
- Chrome Origin 空值是 Access-Control-Allow-Origin 所允许的
- Angular JS$http Access-Control-Allow-Origin中的Credentials和通配符