Как получить корневой путь в JavaScript?

Я использую mod_rewrite для переотображения URL в моем веб-сайте в следующем формате:

http://www.mydomain.com/health/54856

http://www.mydomain.com/economy/strategy/911025/

http://www.mydomain.com/tags/obama/new

Проблема состоит в том, что я выполняю вызовы Ajax в файл: http://www.mydomain.com/login.php

И я не хочу писать ПОЛНЫЙ URL или даже использовать ../ обманите, потому что нет фиксированного уровня папок.

Так, что я хочу, что-то для доступа к login.php от корня, независимо от того, что доменное имя:

 $.ajax({
    type: "POST",
    url: "http://www.mydomain.com/login.php"
 });

5
задан Daniel Vassallo 18 March 2010 в 09:16
поделиться

2 ответа

Что насчет:

$.ajax({
    type: "POST",
    url: "/login.php"
});

Убедитесь, что вы разрешили доступ к /login.php из ваших правил mod_rewrite.

21
ответ дан 18 December 2019 в 06:11
поделиться

Вы также можете определить переменную для 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"
});
5
ответ дан 18 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: