Путь к каталогу, странное поведение

У меня есть запрос AJAX, который я пытаюсь вызвать конкретный файл, из которого находится по адресу:

ROOT/admin/functions/upload/filename.php

И страница, с которой делается запрос, находится по адресу:

ROOT/admin/customers/123

Который модифицируется через htaccess из

ROOT/admin/customer.php?id=123

Я перепробовал каждую комбинацию путей, о которой только мог подумать, но я получаю странное поведение, например, когда использую

../functions/upload/filename.php

Он ищет файл в

ROOT/functions/uploads/filename.php

И когда я использую

functions/upload/filename.php

Он ищет файл в

ROOT/admin/customers/functions/uploads/filename.php

Так я попробовал

../admin/functions/upload/filename.php

И это выглядит в

ROOT/admin/admin/functions/upload/filename.php

Я дергаю себя за волосы, у кого-нибудь есть идеи, что это может быть?

Любая помощь будет принята с благодарностью.

Спасибо, Джеймс.

0

Решение

Поскольку браузер НИЧЕГО не знает о ваших путях на стороне сервера, и у него есть только путь, который вы видите в адресной строке, например,

http://example.com/ROOT/admin/customers/123

тогда, если ваш код Ajax выглядит

$.ajax('functions/foo/bar.php');

Тогда вызов ajax будет запрашивать

http://example.com/ROOT/admin/customers/123/functions/foo/bar.php

Точно так же, добавляя ../ просто удаляет уровни адреса исходной страницы:

$.ajax('../../functions/foo/bar.php');

результаты в

http://example.com/ROOT/admin/customers/123/../../functions/foo/bar.php
^-A-^
^-------B------^

http://example.com/ROOT/admin/functions/foo.bar.php

Вы, вероятно, хотите

$.ajax('/ROOT/functions/foo/bar.php');

С этим ведущим /браузер игнорирует ВСЕ содержимое подкаталога в URL и использует полный путь от вызова ajax как полный путь.

http://example.com/ + /ROOT/functions/foo.bar.php
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]