0

JSON を返す Ruby On Rails 3.0.x アプリを作成しました。これまでのところ、Advertisements コントローラーには、index、show、update、destroy の 4 つのメソッドしかありません。

同じドメイン内のアプリから (AJAX と jQuery を介して) メソッドを呼び出そうとすると、成功します。しかし、別のドメイン内の別のアプリから同じことをしようとすると、メソッド PUT および DELETE を使用しようとした場合にのみ、次のエラー メッセージが表示されます (GET および POST では正常に機能します)。

XMLHttpRequest は URL_HERE オリジンをロードできません URL_HERE は Access-Control-Allow-Origin によって許可されていません。

私の RESTful サービスは、HTTPS ではなく HTTP 経由で呼び出されます。

以下は、私が使用している AJAX コードです (16 は広告の ID です)。

$.ajax({
    type: "DELETE",
    url: "http://SERVICE_URL/advertisements/16.json",
    crossDomain: true,
    success: function(response){
            alert("test");

    }
    });

何か案は?

ありがとう。

4

1 に答える 1

2

Rack-cors を試してみてください。以下を使用して、Web サービスのCORS を有効にします。

# config/application.rb
config.middleware.use Rack::Cors do |requests|
  requests.allow do |allow|
    allow.origins '*'
    # perhaps you would stick :put and :delete here?
    # then you should follow the rack-cors documentation to only enable it where necessary
    allow.resource '*', :headers => :any, :methods => [:get, :post]
  end
end
于 2012-04-18T21:20:27.390 に答える