Я использую mod_rewrite для переотображения URL в моем веб-сайте в следующем формате:
http://www.mydomain.com/health/54856
Проблема состоит в том, что я выполняю вызовы Ajax в файл: http://www.mydomain.com/login.php
И я не хочу писать ПОЛНЫЙ URL или даже использовать ../
обманите, потому что нет фиксированного уровня папок.
Так, что я хочу, что-то для доступа к login.php от корня, независимо от того, что доменное имя:
$.ajax({
type: "POST",
url: "http://www.mydomain.com/login.php"
});
Что насчет:
$.ajax({
type: "POST",
url: "/login.php"
});
Убедитесь, что вы разрешили доступ к /login.php
из ваших правил mod_rewrite.
Вы также можете определить переменную для JS, которая будет использоваться в вашем заголовке HTML:
<script type="text/javascript">
// siteRoot will be equal to http://www.yourdomain.com/
var siteRoot = '<?php echo $theSiteRoot; ?>';
<script>
А затем добавить переменную siteRoot в ваши вызовы AJAX.
$.ajax({
type: "POST",
url: siteRoot+"login.php"
});
Просто убедитесь, что вы напечатали переменную siteRoot перед включением ваших файлов .js.
Другой способ заставить это работать - использовать базовый тег HTML. Все запросы на стороне клиента будут выполняться на этой цели. Включите его перед объявлением любой ссылки / скрипта.
<base href="<?php echo $theSiteRoot; ?>" />
Надеюсь, это поможет :)
Изменить:
Вам не нужно будет ничего добавлять к вашим вызовам AJAX, если вы используете метод базового тега. Простой звонок поможет.
$.ajax({
type: "POST",
url: "login.php"
});