Проблема заключается в том, что многие веб-обсуждения вокруг этой проблемы год или более старые. Сейчас я занимаюсь этим же исследованием, и это то, что я узнал сегодня.
Этот IBM Developer Works article from August 2008 от Jorge Rasillo и Mike Burr показывает, как делать внешнее приложение Flex/RESTful (примеры в PHP и Groovy). Хорошая статья. Во всяком случае, вот отнимать:
- Их PHP/Groovy код использует и ожидает PUT и DELETE.
- Но код Flex должен использовать POST, но устанавливает HTTP-заголовок X-Method-Override в DELETE (вы можете сделать то же самое для PUT I).
- Обратите внимание, что это не Прокси-метод, описанный выше.
// Flex doesn't know how to generate an HTTP DELETE.
// Fortunately, sMash/Zero will interpret an HTTP POST with
// an X-Method-Override: DELETE header as a DELETE.
deleteTodoHS.headers['X-Method-Override'] = 'DELETE';
Что здесь происходит? веб-сервер IBM перехватывает и интерпретирует «POST с DELETE» как DELETE.
Итак, я выкопал дальше и нашел это post and discussion with Don Box (один из оригинальных парней SOAP). По-видимому, это довольно стандартное поведение, поскольку некоторые браузеры и т. Д. Не поддерживают PUT и DELETE, и это обход, который был вокруг. Вот фрагмент, но обсуждений гораздо больше.
«Если бы я строил клиент GData, я честно удивляюсь, почему я заморачиваться с помощью DELETE и PUT методы на всех, учитывая, что X-HTTP-Method-Override будет работать в более случаев/развертывания."
Мое исключение из этого заключается в том, что если ваша веб-сторона поддерживает этот заголовок X-Method-Override, то вы можете использовать этот подход. Комментарии к Don Box заставляют меня думать, что это довольно хорошо поддерживается, но я что пока не подтверждено
еще одна проблема возникает вокруг умея читать заголовки ответа HTTP Опять же, из a blog post in 2007 by Nathan de Vries, мы видим это обсуждали Он последовал этот пост в блоге и обсуждение с его собственным комментарием:...
«Единственное изменение на веб-сайте - это то, что более новые версии Flash Player (конечно, это s с поддержкой Flex 3 beta), теперь поддерживают свойство responseHeaders на экземплярах HTTPStatusEvent. »
Я надеюсь, что это означает, что это не проблема.
Я думаю, что также важно спросить себя, теряют ли клиенты, которые используют «X-HTTP-Method-Override» некоторые преимущества REST. Этот подход действительно отличается от туннелирования по HTTP? Разве вы не теряете способность использовать кеширующие прокси и другие подобные преимущества? – Gili 2008-10-22 04:58:22
Если вы посмотрите здесь http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html в разделе 13.10, вы увидите, что PUT, DELETE и POST все приводят к недействительности записи в кеше. Поэтому независимо от того, используете ли вы правильный глагол или POST плюс X-HTTP-метод-переопределение, вы окажете тот же эффект на кеш. – 2009-08-13 12:18:18