Sinatraを設定して、パブリックフォルダ の静的ファイルがAccess-Control-Allow-Origin = "*"という応答で返されるようにしますか?sinatraパブリックフォルダのSinatraアクセス制御の許可元
答えて
ここでこの質問をご覧ください:Sinatra OPTIONS HTTP Verb今はsinatraに実装されているので、あなたはそれをハックする必要はありません。
それは、このブログの記事を見ても解決できない場合:Cross Origin Resource Sharing with Sinatra、とgithubのでそのレポ:sinatra-corss_origin
それを行うための最も簡単な方法は、これを追加することでうまく動作する必要がありますが:
response['Access-Control-Allow-Origin'] = 'http://whatever.org'
あなたのルートの戻り値の前に
get '/foo' do
headers 'Access-Control-Allow-Origin' => 'http://example.com'
'hello world'
end
クロスオリジン・共有のための素敵な拡張もあります:
https://github.com/britg/sinatra-cross_origin
require 'sinatra'
require 'sinatra/cross_origin'
# To enable cross origin requests for all routes:
configure do
enable :cross_origin
end
# To only enable cross origin requests for certain routes:
get '/cross_origin' do
cross_origin
"This is available to cross-origin javascripts"
end
宝石は機能しますか?私は試してみましたが、@daddzの答えのように私の応答メソッド内に明示的に追加するまで、 'Access-Control-Allow-Origin'ヘッダーを表示することができませんでした – sameers
私は私のファイルがserver.rb呼ばれた、サーバー側でこれをした:
before do
content_type :json
headers 'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
end
ありがとうございました。私はGETリクエストを許可するために、最初のビット、 'headers" Access-Control-Allow-Origin "=>" * "'を取り除いた。他の動詞を試してみませんでしたか? –
- 1. クロム拡張のアクセス制御 - 許可元 -
- 2. MVC 5のアクセス制御許可元 -
- 3. Vue.js + Vueリソース 'アクセス制御許可元'
- 4. アクセス制御 - 許可 - 起源:* Tomcatの
- 5. 動的にアクセス許可制御元を設定する
- 6. IOS9 WKWebViewアクセス制御許可原点
- 7. はhttp://example.comアクセス制御 - 許可 - 起源
- 8. jQuery.getJSON - アクセス制御許可Origin問題
- 9. 複数のドメインのアクセス制御 - 許可元 - より簡単な方法で
- 10. Rackspaceクラウドファイルのアクセス制御許可元(CORS)を設定するPython API
- 11. grailsのアクセス制御、役割とアクセス許可
- 12. Safariのみ:リクエストヘッダーフィールドキャッシュ制御はアクセス制御許可ヘッダーで許可されていません
- 13. XMLHttpRequestが読み込めません。アクセス制御許可元からOriginが許可されていません。
- 14. Chromeでエラーが発生しました:「オリジナルファイル://アクセス制御許可元から許可されていません」
- 15. 予測不可能なアクセス制御 - 許可 - 起源行動
- 16. Ajaxのレスポンスの問題(アクセス制御 - 許可 - 起源。)
- 17. コードナビホワイトリスト許可許可ナビゲーションとアクセス元
- 18. main:Object(NoMethodError)Sinatraの未定義メソッド `run 'Sinatra
- 19. HTML5キャンバスのアクセス制御 - 許可 - 起源エラー
- 20. アクセス制御サーブレットでの起点を許可する
- 21. アクセス制御 - 許可 - 起源は、jQueryの負荷は()
- 22. クロスドメインAJAXリクエスト:起源のhttp:// ...は、アクセス制御 - 許可 - 起源
- 23. Sinatraミドルウェアでのセッションへのアクセス
- 24. ジャージー - プリフライトリクエストへの応答は、アクセス制御チェックに合格しない:いいえ「アクセス制御 - 許可 - 起源」
- 25. ruby sinatraのパッチメソッド
- 26. Sinatraのテストフレームワーク
- 27. Sinatraアプリケーションのバインドアドレス
- 28. Sinatraのdatetime_select
- 29. sinatraのラックオフライン
- 30. アクセス制御が許可されていません
私は 'response'ではなく' headers'を使用しています: 'headers(" Access-Control-Allow-Origin "=>" * ")' – fguillen
最も簡単な方法に感謝します –