0

我构建了一个返回 JSON 的 Ruby On Rails 3.0.x 应用程序。到目前为止,我的广告控制器中只有四种方法:索引、显示、更新、销毁。

当我尝试从同一域中的应用程序调用方法时(通过 AJAX 和 jQuery),我成功了。但是,当我尝试从另一个域中的另一个应用程序执行相同操作时,我收到以下错误消息,仅当我尝试使用方法 PUT 和 DELETE 时(它适用于 GET 和 POST):

XMLHttpRequest 无法加载 URL_HERE 来源 URL_HERE 不受 Access-Control-Allow-Origin 的允许。

我的 RESTful 服务是通过 HTTP 而不是 HTTPS 调用的。

下面是我正在使用的 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 回答