Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Путь от корня сайта (https://javascript.ru/forum/misc/20637-put-ot-kornya-sajjta.html)

Smoker 12.08.2011 02:25

Путь от корня сайта
 
Запрашиваю страницу http://example.com/, там подключается JS-сценарий с таким кодом:
$.post('/init', {}, ...);

(запрос к http://example.com/init)
Но относительный путь
$.post('init', {}, ...);

не работает. В логах 404 нигде не вижу, т.е. запрос видимо не происходит вообще. Как получить путь от корня сайта, т.е. аналог
dirname($_SERVER['PHP_SELF'])

из PHP, чтобы можно было писать
$.post(path + 'init', {}, ...);

?

devote 12.08.2011 05:07

echo $_SERVER['DOCUMENT_ROOT'].'/';

Smoker 12.08.2011 15:31

Вы отвечаете, не читая?

devote 12.08.2011 15:33

Цитата:

Сообщение от Smoker
Что за бред?

Каков вопрос таков ответ, в переменной храниться корневой путь сайта.. Как просили

Smoker 12.08.2011 15:35

Я этого не просил, поменьше курите травы. Мне нужна переменная на JavaScript, содержащая путь от корня САЙТА, а не DOCUMENT_ROOT на сервере. Эту переменную не должен генерировать PHP вообще.

devote 12.08.2011 15:36

а если вам все же нужен релативный путь от пути $_SERVER['DOCUMENT_ROOT'] до файла, то прям так и надо говорить... а не понятно что.
echo str_replace( $_SERVER['DOCUMENT_ROOT'], '', dirname( __FILE__ ) );

devote 12.08.2011 15:37

alert( document.location.pathname );

melky 12.08.2011 16:13

Smoker, фигня творится.

внимательно логи смотрели ?

и что такое /init ? это картинка такая , index.html или скрипт?

раз запрос не выполняется, то это вообще никак от путей не зависит.

у вас плохая трава, запрос будет выполняться при таком url, но ругаться на что-то. или, может, вы забыли обработчики success, error, complete повесить?

Smoker 12.08.2011 16:14

Это не "релативный путь", а как раз вполне "абсолютный". К файлам и путям на сервере это не имеет никакого отношения, потому что речь идёт о виртуальном адресе. Спасибо.

Smoker 12.08.2011 16:20

melky, там было перенаправление с /init на /init/ (http://example.com/init/ отдаёт JSON, если интересно) и происходил GET-запрос. А разрешён только POST-запрос к http://example.com/init/
Отсюда я в логах и не увидел ошибок. Такая вот фигня.

То есть да, я мудак, настоящий код выглядит так:
$.post('init/', ...);

и теперь он работает.


Часовой пояс GMT +3, время: 01:21.