从PHP文件内的网站获取XML数据(内部服务器错误)
我需要使用API键从网站获取XML数据,我正在使用AJAX和PHP。 以下是我的AJAX代码(顺便说一句,PHP文件位于FileZilla服务器中): 以下是PHP代码:从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
<?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();