2011-08-18 113 views

回答

15

看看這個問題在這裏:Sinatra OPTIONS HTTP Verb。它現在在sinatra中實現,所以你不必繞過它。

如果不幫看看這個博客帖子:sinatra-corss_origin

雖然做它應該只是通過增加這方面的工作最簡單的方法:

response['Access-Control-Allow-Origin'] = 'http://whatever.org' 
Cross Origin Resource Sharing with Sinatra,其在GitHub庫

之前返回值在您的路線。

+2

我沒有使用'response'但是'headers':'headers(「Access-Control-Allow-Origin」=>「*」)' – fguillen

+0

非常感謝最簡單的方式 –

5
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 
+0

寶石是否工作?我試過了,我無法得到'Access-Control-Allow-Origin'頭文件,直到我明確地在我的響應方法中添加它,就像在@daddz – sameers

1

我這樣做是在服務器端,我的文件名爲server.rb:

before do 
    content_type :json  
    headers 'Access-Control-Allow-Origin' => '*', 
      'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST'] 
end 
+0

的答案中一樣。謝謝。我得到了第一個位,「頭」Access-Control-Allow-Origin「=>」*「',以允許GET請求。沒有嘗試其他動詞。 –

相關問題