Я работаю на API-сервере с Rails 3, который довольно удобен до сих пор, но я постоянно сталкиваюсь с ошибкой и не уверен, что это из-за моей установки Apache или приложения Rails.
Когда я пытаюсь выполнить HTTP-запрос DELETE или PUT на http://sample.domain/uri/id через XHR, curl или HTTP-Client.app Rails или Apache отвечает 404 или 403 (зависит от клиента. Iдумаю из-за cors) и консоль разработчика Safari отвечает
XMLHttpRequest cannot load http://sample.domain/uri/id. Origin http://web.client/ is not allowed by Access-Control-Allow-Origin.
Я использую mod_rack aka mod_rails на Apache2, и мой vhost фактически содержит это:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods POST,GET,DELETE,PUT,OPTIONS
Header set Access-Control-Allow-Headers X-Requested-With
Apache error_logотвечает со следующей ошибкой:
[Sat Oct 30 01:37:34 2010] [error] [client 22.222.222.22] client denied by server configuration: /path/to/rails/folder/public, referer: http://web.client/
Rails development.log отвечает с
Started OPTIONS "/uri/id" for 84.190.123.140 at 2010-10-30 03:18:42 +0200
ActionController::RoutingError (No route matches "/uri/id"):
И здесь я не уверен, почему вызов OPTIONS происходит, потому что я думал, что это будет толькоПредварительная проверка и, конечно, нет никакого маршрута для ОПЦИИ, потому что я хочу ответить на УДАЛИТЬ
Если у вас есть идеи, как решить эту проблему, пожалуйста, поделитесь ею со мной.
Спасибо большоемного Дэвид