Я создаю приложение для iOS, которое позволяет пользователям отправлять изображения / текстовые данные на мой веб-сервер через запрос POST. Я успешно отправляю POST-запросы на сервер, когда данные изображения не включены в запрос. Каждый раз, когда я отправляю POST с данными изображения, сервер возвращает 403 forbidden
. Я попытался добавить следующее в файл .htaccess в каталоге скрипта, но безуспешно:
Options +Indexes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
Веб-браузеры и устройства Android могут успешно выполнять POST с данными изображения в сценарий, единственное устройство, которое не может, - это iPhone.
Отправка данных другим хостинг-провайдерам работает должным образом - это только этот хост (ipowerweb.com).
Я заметил, что когда я пытаюсь отправить данные в любой скрипт на сервере он возвращает 403 forbidden
. Еще одно замечание: я могу успешно отправлять сообщения на другой сервер, который размещен на ipowerweb, но мой, похоже, не справляется с этим.
Мой хозяин попытался решить проблему, но не смог, и они пометили ее на своей стороне как «решенная», так что от них больше никакой помощи. Я хочу сохранить этот хост, так как перемещение было бы проблемой - я поменяю хоста в крайнем случае, поэтому, пожалуйста, помогите мне!
Почему я получаю эту ошибку 403 запрещено только тогда, когда я отправляю данные через приложение для iPhone?
Как я могу решить проблему, чтобы успешно отправить данные POST?
Буду очень признателен за любые советы о том, что я могу сделать.
изменить: как запрос, вот заголовки ответа:
{
Connection = close;
"Content-Length" = 217;
"Content-Type" = "text/html; charset=iso-8859-1";
Date = "Wed, 12 Jan 2011 19:11:19 GMT";
Server = "Apache/2";
}
изменить: в качестве запроса здесь заголовки запроса (упс):
{
"Accept-Encoding" = gzip;
"Content-Length" = 5781;
"Content-Type" = "multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY";
"User-Agent" = "YeahIAteThat 1.0 (iPhone; iPhone OS 4.2.1; en_US)";
}
Что произойдет, если в качестве теста вы измените первую часть заголовка User-Agent с «YeahIAteThat 1.0» на что-то типичное, например «Mozilla / 5.0»?
Может быть, вы отправляете сообщение на адрес, который возвращает перенаправление? Так, например, если у вас http://example.com/directory сервер перенаправит вашего клиента на http://example.com/directory/ и полезная нагрузка почтового запроса обычно не отправляется повторно в новое место назначения ...
могло ли это быть из-за того, что mod_security установлен и отклоняет операцию POST (из-за правила?)