2014-10-01 44 views
0

我想在PHP中使用DOMDocument在另一個網站上顯示一個WordPress的RSS源。 theres沒有改變從標準的Wordpress佈局的RSS。我使用的是把它的代碼如下:跨域RSS源 - 導致500內部服務器錯誤和意外令牌<

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

與它會導致500內部服務器錯誤。整個頁面無法加載。

我試圖通過jQuery Ajax調用,而不是

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); 
} 
}) 

隨着該訪問飼料,我有錯誤,說明不訪問控制允許來源設置。我嘗試設置數據類型設置爲JSONP,然後我得到語法錯誤意外的標記<代替

於是我終於加入標題(「訪問控制允許來源:*」);到整個網站的index.php文件的頂部,然後這使得json和jsonp dataTypes給出了意想不到的令牌<的相同錯誤。

我似乎無法解決如何最好地解決這個問題,甚至導致它。它從我們從goDaddy轉移到另一個託管服務後纔開始發生。

歡迎提出任何建議!

+1

嘗試dataType:'jsonp'? – SSA 2014-10-01 12:00:41

+0

爲什麼不使用CURL函數來獲取數據? – DeDevelopers 2014-10-01 12:01:04

+0

忘記ajax方法,xml不是jsonp。打開錯誤報告'error_reporting(E_ALL); ini_set(「display_errors」,1);'那麼你會明白爲什麼'$ rss-load()'失敗 – Steve 2014-10-01 12:04:55

回答

0

已解決 我正在用它來構建一個從另一個站點獲取提要的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> 
+0

事實證明,這給我們帶來了另一個錯誤,因爲此解決方案在IE9或更低版本中無效! – 2014-10-06 14:07:05

相關問題