2014-02-11 140 views
0

我正在嘗試在我的網站上獲取Twitter Feed。然而,每當我打開我的網頁,我得到以下錯誤:網站上的XMLHttpRequest錯誤

XMLHttpRequest cannot load http://www.jciadt.com/demos/twitter/get_tweets.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://jciadt.com' is therefore not allowed access. 

有問題的頁面可以在這裏找到 - >http://jciadt.com/demos/twitter/testindex.html

我不知道爲什麼會這樣。任何幫助將不勝感激。

<?php 

session_start(); 

require_once('http://jciadt.com/demos/twitter/twitteroauth/twitteroauth/twitteroauth.php'); 



$twitteruser = "jackcoldrick"; 

$notweets = 30; 

$consumerkey="xxxxxxx"; 

$consumersecret="xxxxxxx"; 

$accesstoken="xxxxxxx-xxxxxxx"; 

$accesstokensecret="xxxxxxx"; 



function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret){ 

    $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); 

    return $connection; 

} 



$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); 

$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets); 

echo json_encode($tweets); 



?> 
+0

我不這麼認爲。根據這些網址,我不認爲這真的需要成爲一個跨域請求。另一方面,如果通過相同的子域訪問HTML和PHP不能用於其他原因,並且下面得到的500錯誤是無法解析的,沒有'www'區分,那麼使用服務器端腳本來使要求你是最常用的選擇。 – citizenslave

+1

我希望Twitter的API至少有點溝通,但有可能是實例化或get引發異常。你有'display_errors'打開?你有沒有記錄任何異常?仔細檢查你所有的變量,並確保你的標記等都是正確的,並且你按照正確的順序傳遞它們,所有這些......我不熟悉Twitter,tbh ......我剛開始爲Google API。 – citizenslave

回答

0

您正在嘗試向不允許的資源發出跨域請求。如果您從this link運行腳本,會發生什麼情況?地址中的www會將您置於不同的子域,並會干擾XHR。當我通過www前言鏈接進行嘗試時,我的腳本中收到500錯誤,而不是XHR失敗錯誤。

+0

我現在也收到這個錯誤。 – Javacadabra

+0

此時你必須調試你的PHP。我無法訪問錯誤日誌或源代碼來推斷500的源代碼。將它們添加到您的答案中(至少PHP src),我會看看... – citizenslave

+0

我添加了腳本似乎正在產生500錯誤,但不知道爲什麼它可能會產生問題。 – Javacadabra