Проблема в том, что многим веб-дискуссиям по этому вопросу уже год или больше. Я сейчас работаю над тем же исследованием, и это то, чему я научился сегодня.
Эта статья IBM Developer Works от августа 2008 года , написанная Хорхе Расилло и Майком Барром, показывает, как создать интерфейсное приложение Flex / front-end / RESTful (примеры на PHP и Groovy). Хорошая статья. Во всяком случае, вот что забрать:
- Их код PHP / Groovy использует и ожидает PUT и DELETE.
- Но код Flex должен использовать POST, но устанавливает для X-Method-Override заголовка HTTP значение 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 with DELETE» как DELETE.
Итак, я продолжил копать и нашел этот пост и обсуждение с Доном Боксом (один из оригинальных парней SOAP). По-видимому, это довольно стандартное поведение, поскольку некоторые браузеры и т. Д. Не поддерживают PUT и DELETE, и это обходной путь, который уже давно существует. Вот фрагмент, но есть гораздо больше дискуссий.
"Если бы я создавал клиент GData, я искренне удивлялся, почему я вообще потрудился бы использовать методы DELETE и PUT, учитывая, что X-HTTP-Method-Override будет работать в большем количестве случаев / развертываний."
Мой вывод заключается в том, что если ваша веб-сторона поддерживает этот заголовок X-Method-Override, то вы можете использовать этот подход. Комментарии от «Дон Бокса» заставляют меня думать, что он довольно хорошо поддерживается, но я еще не подтвердил это.
Другая проблема возникает в связи со способностью читать заголовки ответа HTTP. Опять же, из сообщения в блоге Натана де Фриза в 2007 году мы видим, что это обсуждалось. За этим сообщением в блоге и обсуждением он добавил свой комментарий:
"Единственное изменение в веб-интерфейсе - это то, что более новые версии Flash Player (конечно, поставляемые с бета-версией Flex 3) теперь поддерживают свойство responseHeaders в экземплярах HTTPStatusEvent."
Надеюсь, это означает, что это уже не проблема.