跨域RSS提要 - 导致500内部服务器错误和意外令牌<

时间:2014-10-01 11:59:53

标签: php jquery ajax wordpress rss

我试图在PHP中使用DOMDocument在另一个网站上显示wordpress RSS提要。来自标准Wordpress布局的RSS没有变化。用于将其拉入的代码如下:

$rss = new DOMDocument();
$rss->load('http://www.wchg.org.uk/news/feed/');

导致 500内部服务器错误。整个页面无法加载。

我试图通过jQuery Ajax调用来访问feed

jQuery.ajax({
type:'GET',
url:"http://www.wchg.org.uk/news/feed/",
dataType:'json',
async:false,
crossDomain: true,
success : function(data){
    alert(data);},
error : function(httpReq,status,exception){
    alert(status+" "+exception);
}
})

有了这个,我收到错误,说明没有设置 Access-Control-Allow-Origin 。我尝试将dataType设置为jsonp然后我得到语法错误意外令牌< 而不是

然后我最后将标题(" Access-Control-Allow-Origin:*"); 添加到整个网站的index.php文件的顶部,然后,这使得json和jsonp dataTypes给出了意外Token<。

的相同错误

我似乎无法弄清楚如何最好地解决这个问题,甚至是什么导致它。自从我们从goDaddy转移到另一个托管服务以来,它才开始发生。

欢迎所有建议!!

1 个答案:

答案 0 :(得分:0)

解决 我正在使用它来构建一个从另一个站点获取feed的newsticker,结束了抓取PHP路由并构建jQuery,因为php正在构建页面。似乎现在工作。仍然不知道导致内部服务器错误的原因

$list = '
<script type="text/javascript">
    jQuery(document).ready(function(){
        jQuery.ajax({
           url: \'http://www.wchg.org.uk/news/feed/\',
           type: "GET",
           dataType: "xml",
           success: function (result) {
                jQuery(result).find(\'item\').each(function () {
                    jQuery(".ticker").append("<li class=\"news-item\"><a href=\""+jQuery(this).find(\'link\').text()+"\" title=\""+jQuery(this).find(\'title\').text()+"\">"+jQuery(this).find(\'title\').text()+"</a></li>");
                 });                     
               }
           }).done( function() {
                jQuery("#cbnewsticker'.$id.'").ticker({
                controls: false,
                displayType: "reveal",
            });
           });




    });     
</script>