AJAX调用PHP脚本给我500内部服务器错误?

时间:2009-02-11 19:33:26

标签: php ajax apache

我使用JQuery创建一个AJAX请求:

$.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仅安装。

请帮忙

更新

这是错误:

  

[Wed Feb 11 20:48:17 2009] [错误] [client xx.xx.xxx.xxx] PHP致命错误:在/ var / www / html / library / Zend / Gdata中找不到类'DOMDocument'第734行的/App.php,引用者: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');

但我不应该玩那个吧?在任何情况下,该类不作为脚本存在,并且在该脚本中不作为类存在。我在我的其他服务器上使用这个相同的图书馆。它也缺少???这是我从Youtube API zip文件夹下载的内容。

解决

这是一个全新的服务器,它安装了最少的PHP。我缺少PHP dom功能。快速安装修复了这个问题。谢谢你提醒我查看日志。我应该先尝试一下。

yum install php-xml
yum install php-xmlrpc

6 个答案:

答案 0 :(得分:9)

尝试在浏览器中自己手动执行调用(同样的事情)并查看返回的内容。如果没有返回任何内容并且您收到500内部服务器错误,则需要查看日志并查看导致此错误发生的原因。

还要确保您正在对正确的域进行ajax调用。如果您尝试呼叫您的域名,则每次呼叫都会失败。

答案 1 :(得分:2)

什么? .php5?我不知道你的apache配置(假设你甚至使用它),但.php适用于所有版本的PHP。

无论如何,尝试直接访问该URL并查看会发生什么,这与Ajax无关。另请查看您的Web服务器日志。

答案 2 :(得分:0)

确保正确设置权限。 在justhost.com服务器上遇到同样的问题 将我的php脚本的权限设置为0644,一切顺利。

答案 3 :(得分:0)

我有类似的问题,但解决方案不同。检查您是否已上传PHP代码中引用的所有文件。我发现我通过ajax调用的文件引用了缺少定义文件的类,服务器为此返回了500 Internal server error

答案 4 :(得分:0)

可能你只有一个PHP代码错误copypast (url)
并将告诉你错误修复它,一切都应该没问题 祝你好运

答案 5 :(得分:-5)

我有同样的错误。 Firebug会告诉你500内部服务器错误。