Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Запуск обработки POST от сервиса

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

f0d418nnT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день,
Есть сервис который отправляет данные на сервер POST-запросом на адрес вида https://site.ru/api. На сервере имеется папка /api, в которой лежит скрипт index.php для обработки поступающих POST-запросов и .htaccess с директивой DirectoryIndex index.php.  
В файле access.log сервера видно, что запросы поступают, но сервер не передает управление в index.php.  
Если обращаться из браузера GETом на этот же адрес, то index.php запускается.
В каком направлении рыть, чтобы скрипт запускался при поступлении POST-запроса от сервиса?

Всего записей: 5 | Зарегистр. 07-09-2016 | Отправлено: 09:25 07-09-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f0d418nnT
GET и POST, в своей основе, одно и то же, лишь несколько иначе передаются данные.

Цитата:
что запросы поступают, но сервер не передает управление в index.php.

и какой ответ отдает? какого размера в байтах?
а если запостить в /api/ или прямо в /api/index.php ?

Цитата:
каком направлении рыть, чтобы скрипт запускался при поступлении POST-запроса от сервиса?

смотреть содержимое .htaccess, конфиг сервера и, хотя бы, index.php на наличие чего то особенного в отношении POST запроса.

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 09:33 07-09-2016 | Исправлено: Mavrikii, 09:37 07-09-2016
f0d418nnT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и какой ответ отдает? какого размера в байтах?

Ответ дает 301 - Moved permanently, размер 239 байт. Т.е. получается, что какой-то скрипт он ищет раз говорит, что он перемещен. А как определить имя скрипта, который он ищет?

Цитата:
а если запостить в /api/ или прямо в /api/index.php ?

Пост отправляет сервис, поэтому я не могу посмотреть ни заголовки, ни данные, которые идут в посте пока не запущу свой скрипт.
К примеру, когда мы отправляем POST из какой-нибудь своей формы, то указываем там атрибут action, в котором пишем скрипт для обработки запроса. Если, допустим, не указывать action, то сервер передаст управление скрипту, который вывел эту форму. Но в данном случае POST  приходит от внешнего источника, поэтому не ясно куда должен сервер передать управление. И какой у него action стоит (если вообще он есть) я не знаю как определить.  

Всего записей: 5 | Зарегистр. 07-09-2016 | Отправлено: 09:59 07-09-2016 | Исправлено: f0d418nnT, 10:00 07-09-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f0d418nnT

Цитата:
Ответ дает 301 - Moved permanently, размер 239 байт

ну вот вам и ответ. перекидывает на /api/, скорее всего.
то же самое делает и GET, только вы тогда идете браузером, а не сам сервис. а сервис, видимо, не хочет следовать редиректу.
 
http://httpd.apache.org/docs/current/mod/mod_dir.html#directoryslash
внимательно прочитайте предупреждение по ссылке.
и, на будущее, вопросы настройки апача (или другого сервера) обсуждаются в разделе "в помощь сисадмину"
 
либо, что может быть проще, сделайте в системе /api символической ссылкой на index.php

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 10:04 07-09-2016 | Исправлено: Mavrikii, 10:05 07-09-2016
f0d418nnT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
сервис, видимо, не хочет следовать редиректу

Да, действительно, редиректа на /api/ нет. Спасибо, что разъяснили.

Цитата:
вопросы настройки апача (или другого сервера) обсуждаются в разделе "в помощь сисадмину"

С этим понятно.

Цитата:
сделайте в системе /api символической ссылкой на index.php

Апач установлен под Wndows поэтому со ссылкой не получится. А других вариантов никаких нет?

Всего записей: 5 | Зарегистр. 07-09-2016 | Отправлено: 11:00 07-09-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f0d418nnT

Цитата:
А других вариантов никаких нет?

я же дал ссылку на опцию конфига
 

Код:
<Location "/api">
    DirectorySlash Off
    SetHandler application/x-httpd-php
</Location>

файл index.php перенести в корень сайта и обозвать api
ну и исправить внутри, чтобы подключалось что нужно и откуда нужно.
 
либо попробовать еще просто  
Alias /api /api/index.php  
не знаю, сработает ли. возможно второй api нужно будет поменять на что то другое, чтобы не было "лупа".

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 11:06 07-09-2016
f0d418nnT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь сервер отвечает 403 Forbidden. От самого корня сайта сделал AllowOverride all, Require all granted - бесполезно.

 
Добавлено:
Все разобрался.  
В .htaccess:
RewriteEngine On
RewriteRule ^api index.php [QSA,L]
 
Location и Alias убрал.

Всего записей: 5 | Зарегистр. 07-09-2016 | Отправлено: 14:54 07-09-2016 | Исправлено: f0d418nnT, 18:53 07-09-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f0d418nnT

Цитата:
Все разобрался.  

можно и так ) сорри, было поздно, поэтому и идеи лезли не совсем удобные.
как то забыл про mod_rewrite (дано перешел на nginx)
ну и тоже, на будущее - mod_rewrite: документация, готовые решения, вопросы

Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 20:47 07-09-2016 | Исправлено: Mavrikii, 21:16 07-09-2016
f0d418nnT

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за помощь. Можно тему закрывать.

Всего записей: 5 | Зарегистр. 07-09-2016 | Отправлено: 08:10 08-09-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Запуск обработки POST от сервиса


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru