Скрипт AJAX Call to PHP выдает мне 500 Внутренняя ошибка сервера? - PullRequest
7 голосов
/ 11 февраля 2009

Я делаю AJAX-запрос примерно так, используя JQuery:

$.ajax({
  type: "GET",
  url: "getvideo.php",
  data: 'videoid=' + vid,

Я использую firebug, чтобы сообщить мне, что происходит, и он сообщает, что произошла внутренняя ошибка сервера 500? Вот часть этого скрипта:

$videoid = $_GET['videoid'];
$get = new youtubeAPI();
$get->getVideoAPI($videoid);

class youtubeAPI extends Exception {

  function getVideoAPI($videoid){

    if (isset($videoid)) {

      $clientLibraryPath = 'library';
      $oldPath = set_include_path(
        get_include_path() . PATH_SEPARATOR . $clientLibraryPath
      );

      require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path

Я использую тот же вызов AJAX для других скриптов, и они в порядке. Я использовал эти сценарии на другом сервере, и все нормально , за исключением , на другом сервере файл называется «getvideo.php5», тогда как здесь я назвал его «getvideo.php», так как у меня установлен PHP 5.2.6 только.

Пожалуйста, помогите

UPDATE

Это ошибка:

[Ср. 11 февраля 20:48:17 2009] [error] [client xx.xx.xxx.xxx] Неустранимая ошибка PHP: класс 'DOMDocument' не найден в / var / www / html / library / Zend / Gdata /App.php в строке 734, реферер: http://xx.xx.xx.xxx/

Я спрятал свой IP. В этой строке:

public static function importString($string, $className='Zend_Gdata_App_Feed') {
  // Load the feed as an XML DOMDocument object
  @ini_set('track_errors', 1);
  $doc = new DOMDocument(); // LINE 734
  $success = @$doc->loadXML($string);
  @ini_restore('track_errors');

Но я не должен играть с этим, верно? В любом случае, этот класс не существует как сценарий и не существует в этом сценарии как класс. Я ИСПОЛЬЗУЮ ЭТУ ЖЕ БИБЛИОТЕКУ В МОЕМ ДРУГОМ СЕРВЕРЕ. Это тоже отсутствует, что тоже ??? Это то, что я скачал из zip-папки Youtube API.

решаемые

Это был совершенно новый сервер, на котором был установлен минимальный PHP. Мне не хватало функций PHP dom. Быстрая установка исправила эту проблему. Спасибо, что напомнили мне посмотреть логи. Я должен был попробовать это в первую очередь.

yum install php-xml
yum install php-xmlrpc

Ответы [ 6 ]

9 голосов
/ 11 февраля 2009

Попробуйте выполнить вызов вручную в своем браузере (это тоже самое) и посмотрите, что возвращается. Если ничего не возвращается и вы получаете внутреннюю ошибку сервера 500, вам нужно просмотреть свои журналы и посмотреть, что вызвало эту ошибку.

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

2 голосов
/ 11 февраля 2009

Что? .php5? Я не знаю вашу конфигурацию apache (учитывая, что вы даже используете его), но .php будет работать для всех версий PHP.

В любом случае, попробуйте получить прямой доступ к этому URL и посмотреть, что произойдет, это не должно иметь ничего общего с Ajax. Также взгляните на логи вашего веб-сервера.

0 голосов
/ 31 марта 2016

возможно у вас просто ошибка php кода copy и past (url)
И покажет вам исправление ошибки, и все должно быть в порядке удачи

0 голосов
/ 20 февраля 2015

У меня была похожая проблема, но решение было другим. Проверьте, если вы загрузили все файлы, указанные в коде PHP . Я обнаружил, что файл, который я вызывал через ajax, содержал ссылки на классы, чьи файлы определения отсутствовали, и сервер вернул 500 Internal server error для этого.

0 голосов
/ 19 июня 2010

Убедитесь, что разрешения установлены правильно. Просто была такая же проблема на сервере justhost.com Установите разрешения для моего php-скрипта на 0644, и все хорошо.

0 голосов
/ 23 мая 2009

У меня такая же ошибка. Firebug сообщит вам 500 внутренняя ошибка сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...