2014-11-13 6 views
0

Следующий код в моем зрения/TMPL/edit.php:Joomla 3.3 AJAX вызова

<script type="text/javascript">    
      jQuery("#button").click(function(){ 
       jQuery.ajax({ 
        url:'somefile.php', 
        type:'POST', 
        data: {action:"1"}, 
        success: function(response) {alert(response);} 
       }); 
      });   
     </script> 

и в той же папке, я имею somefile.php со следующим кодом:

Моя проблема в том, что когда я нажимаю кнопку, он никогда не обращается к somefile.php, хотя скрипт выполнен (отмечен предупреждением). Что я здесь делаю неправильно?

Просьба показать мне некоторые указания относительно этого с помощью соответствующего кода примера/примера.

Спасибо.

+1

Попробуйте добавить ', error: function() {alert ('error'); } 'after' success: function (response) {alert (response);}' и посмотреть, появляется ли сообщение об ошибке. – ekad

+0

Это не ошибка. Фактически, используя firebug для отладки, POST возвращает сообщение 200 OK – dimst

+0

Как вы знаете, что ** somefile.php ** никогда не открывается? Где вы поставили предупреждение()? – hashbrown

ответ

1
  1. Если вы звоните «somefile.php» как ваш URL, который будет приравнять к текущему URL вы просматриваете в Joomla + имя файла. Он не будет отображаться на пути вашего файла.

    например. если вы находитесь на главной странице сайта т.е. http://example.com запрос AJAX будет идти к
    http://example.com/somefile.php

    время на странице в http://example.com/blog/mypost01 он будет отображаться в http://example.com/blog/somefile.php.

    Оба они будут неправы, как ваш файл на самом деле где-то вроде:

    http://example.com/components/com_mycomponent/view/tmpl/somefile.php

  2. Сначала я хотел бы использовать прокси-сервер, как Charles контролировать полный request и response, цикл это должно дать вам четкое представление о о том, что происходит, и весь цикл запроса/перенаправления/ответа.

  3. Убедитесь, что вы Error Reporting вывернуты до Development и режима DEBUG Joomla включен, таким образом вы можете увидеть ошибки, а не 200 результата возвращаются.

  4. Некоторые конфигурации и расширения безопасности Joomla 3 htaccess (AdminTools) предотвратят прямой доступ к файлам php. Если это проблема, это, вероятно, признак того, что вы делаете это небезопасно/неправильно.

  5. Поскольку вы используете Joomla 3.3, читайте о нас ing Joomla Ajax Interface на Joomla Doc's site.

  6. Наконец, по мере того, как вы создаете свой собственный компонент, вы можете/должны проходить вызов AJAX через ваш компонент и метод в подходящем контроллере, а не напрямую обращаться к файлу PHP.

+0

Спасибо за советы! Я уже перешел к пункту 6.Кроме того, как передать параметры методу в вызове, предполагая, что это вызов GET? Еще раз спасибо!!! – dimst

+0

Если вы используете ['JInput'] (http://docs.joomla.org/Retrieving_request_data_using_JInput) (как и должно быть в контроллере Joomla), вам не нужно беспокоиться о том, будет ли' get' или ' post' используется. – Craig

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