2014-10-15 3 views
0

У меня есть файл Htaccess (Apache сервер), и я делаю следующий URL переписывания:AJAX и URL переписывания

RewriteRule questionnaire/adminpassword questionnaire/change_admin_password.php 

в моем файла JavaScript я делаю вызов AJAX следующим образом:

$.ajax({ 
     type: 'POST', 
     cache:false, 
     url: 'change_admin_password.php', 
     data: {'currentPassword':currentPassword, 'newPassword': newPassword}, 
     dataType: 'html', 
     success:function(response){ 
     alert(response);    
     }, 
     error:function(){ 
     alert("error"); 
     } 
    });    

Я изменил URL-адрес в вызове ajax: url: 'adminpassword',, но теперь вызов перезагружает страницу и получает ее содержимое вместо запуска php-скрипта на сервере и дает ответ. Я делаю что-то неправильно? Спасибо

+0

У вас возникла такая же проблема, если вы сделаете запрос 'GET'? –

+0

да же проблема с Get –

+0

любая помощь пожалуйста? –

ответ

0

Вы знаете, что если вы просто используете «adminpassword», вы получите относительный путь. Убедитесь, что текущий путь является правильным, в противном случае используйте полный путь, возможно, «вопросник/adminpassword»

Попробуйте напрямую обратиться к URL. Введите его в браузере. Что вы получаете? Получаете ли вы ожидаемый ответ? Затем проверьте фактический запрос, сделанный вызовом ajax, используя инструмент, например, инструменты chrome dev или firebug. Является ли запрос удачным по правому URL?

Если вы попадаете в правильный URL-адрес, проблема, вероятно, связана с сервером.

0

Я знаю, что это старый, но я думаю, что я знаю, что здесь происходит, и это может помочь другим в будущем

При использовании questionnaire/adminpassword ваш файл .htaccess переводит его в questionnaire/change_admin_password.php, и я предполагаю, что Вы перенаправляют все запросы ударяя ваш сайт в файл index.php в корневой папке, которая обрабатывает URL-адрес, и требует, чтобы конкретный файл добавлял к нему верхний и нижний колонтитулы, и это не отличается при выполнении запросов ajax.

Чтобы избежать перенаправления индексного файла, который обрабатывает файл, вы можете избежать этого полностью, позволяя прямой доступ к определенной папке в файле .htaccess, как так

Rewritecond %{REQUEST_FILENAME} !/api где АФИ папка этих сценарии вызываются JavaScript находятся

Смежные вопросы