Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP文件内的网站获取XML数据(内部服务器错误)_Php_Ajax_Xml_Internal Server Error - Fatal编程技术网

从PHP文件内的网站获取XML数据(内部服务器错误)

从PHP文件内的网站获取XML数据(内部服务器错误),php,ajax,xml,internal-server-error,Php,Ajax,Xml,Internal Server Error,我需要使用API键从网站获取XML数据,我正在使用AJAX和PHP。 以下是我的AJAX代码(顺便说一句,PHP文件位于FileZilla服务器中): 以下是PHP代码: <?php header("Access-Control-Allow-Origin: * "); // pedido ao last.fm com a função file_gets_contents // a string XML devolvida pelo servidor last.f

我需要使用API键从网站获取XML数据,我正在使用AJAX和PHP。 以下是我的AJAX代码(顺便说一句,PHP文件位于FileZilla服务器中):

以下是PHP代码:

<?php
    header("Access-Control-Allow-Origin: * ");
    // pedido ao last.fm com a função file_gets_contents 
    // a string XML devolvida pelo servidor last.fm fica armazenada na variável $respostaXML 
    $respostaXML= 
    file_get_contents("http://ws.audioscrobbler.com/2.0/?method=tag.getTopTags&api_key=4399e62e9929a254f92f5cde4baf8a16"); 

    // criar um objecto DOMDocument e inicializá-lo com a string XML recebida 
    $newXML= new DOMDocument('1.0', 'ISO-8859-1'); 
    $newXML->loadXML($respostaXML); 
    echo $newXML;
?>
loadXML($respostaXML);
echo$newXML;
?>
我从浏览器控制台收到此错误: 获取500(内部服务器错误)
有人知道出了什么问题吗?

内部服务器错误只是一个:

500内部服务器错误 当遇到意外情况且没有更具体的消息时给出的一般错误消息

您必须找到有关实际错误的详细信息

从您展示的代码示例判断,错误可能是由于这一部分

$newXML->loadXML($respostaXML); 
echo $newXML;
您的
$newXML
是一个。它没有实现
\uuu toString
,因此不能以这种方式进行回音。你必须使用

换言之:

$newXML->loadXML($respostaXML); 
echo $newXML->saveXml();
见我的介绍

另一方面:如果您只想从远程API获取XML,然后将其输出,那么将XML加载到DOM中是没有意义的。只需执行一个而不是
文件\u获取内容
,并在调用后删除所有内容


如果这不能修复错误,我假设您的服务器已禁用,您无法向远程URL发出请求

我注释了xmlHttpObj.send(null);因为这就是错误所在,但如果没有这一行,它什么也做不了,所以我想我无法访问数据库中的文件server@AdamSilva你有没有像我要求你做的那样检查服务器的错误日志?好的,所以我不再收到任何错误,但是我的PHP文件没有正确接收来自网站的XML数据。我已经更改了PHP和JS文件above@Adam如果我的答案解决了您的内部服务器错误,我建议您接受答案并询问一个关于获取正确XML数据的新答案。请不要将您的问题更改为询问其他错误。改为问一个新问题。如果你把问题换成其他问题,给出的答案将不再合适。
$newXML->loadXML($respostaXML); 
echo $newXML->saveXml();