2012-11-21 1 views
1

Я разрабатываю CMS с PHP и MVC. У меня есть последующие HTAccess:Ajax не работает с этим .htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Так что я диспетчер идти к взглядам diferents зависит от Permalink на ссылке.

Моя проблема заключается в том, что я пытаюсь использовать ajax для входа и несколько вещей больше и не могу заставить его работать.

Есть ли какие-либо издержки в .htaccess, чтобы сделать эту работу, или я могу добавить больше исключений из диспетчера для загрузки .php в ajax?

Кто-нибудь может мне помочь?

Заранее спасибо.

EDIT:

$.post 
(
    "../ajax/login.php", 
    { 
    u:Base64.encode(user), 
    p:Base64.encode(password), 
}, 
    function(data) 
    { 

    }, 
    "json" 
); 

Я попытался с:

"../ajax/login.php"

PATH + VIEW + THEME + "/ Ajax/login.php"

Моя структура папок:

view 
    themes 
     standar 
      ajax 
       login.php 
      js 
       ajaxInteractions.js 
      index.phtml 
+1

Я думаю, нам нужно будет увидеть ваш javascript. –

+1

Покажите свой вызов ajax, но, скорее всего, вам нужно добавить '/' или проверить свой путь вызова ajax более конкретно. – Peon

+0

согласен с @DainisAbols ... также неплохо ввести URL-адрес ajax прямо в новое окно браузера. Затем вы можете проверить, что происходит. Будьте осторожны с относительными URL-адресами - браузер составляет их из URL-адреса родительской страницы (которая является виртуальной и может содержать папки, которые будут помещены перед вашей JS). Это может разрушить функциональность –

ответ

1

Как указано в комментариях, вам необходимо проверить ваш путь или просто использовать абсолютный путь:

$.post 
(
    "/view/themes/standar/ajax/login.php", 
    { 
    u:Base64.encode(user), 
    p:Base64.encode(password), 
}, 
    function(data) 
    { 

    }, 
    "json" 
); 

И еще одну вещь; это не всегда лучшая практика для распространения кода, подобного этому (это хорошо для PHP и простых JS-вызовов). Для этих типов вызовов старайтесь держать его более концентрированным:

$.post("/view/themes/standar/ajax/login.php", { 
    u:Base64.encode(user), 
    p:Base64.encode(password), 
}, function(data) { 
    /** do your stuff **/ 
}, "json"); 
+0

Проблема заключается в htaccess, с этим .htaccess весь url или путь, на который вы указываете URL, перейдите в index.php в корневой каталог домена. – ruudy

+1

Нет, если вы укажете на определенный файл напрямую. Он перенаправит все на 'index.php', если другой действующий URL не найден. – Peon

+0

Спасибо, его работы. я тестировал ваш код, а меня folfer называется standar, без t, но теперь работает. – ruudy