以下代碼在Chrome,Firefox和Komodo Dragon中正常工作。即使是一個乾淨的Firefox安裝(證明我沒有通過FB或任何其他認證)。它在IE中不起作用。 Chrome,FF和龍都會產生有效access_token的警報。 IE導致「訪問被拒絕」。我試過GET和POST,兩者都有相同的結果。ajax調用在Chrome瀏覽器,Firefox但不在IE瀏覽器?
function getWallPosts() {
$.ajax({
url: 'https://graph.facebook.com/oauth/access_token?client_id=<facebookid>&client_secret=<secretcode>&grant_type=client_credentials',
type: 'POST',
success: function (data) {
alert(data)
},
error: function (a, b, c) {
alert(a + ' ' + b + ' ' + c);
}
});
};
編輯:附加信息*
我使用XDomainRequest作爲意見建議,但是我仍然收到訪問只有IE瀏覽器拒絕嘗試。我相信這就是爲什麼:
要求必須有針對性的方案同樣託管頁面
此限制意味着,如果你的AJAX頁面是 http://example.com,那麼你的目標網址也必須以HTTP開頭。 同樣,如果您的AJAX頁面位於https://example.com,那麼您的目標網址也必須以HTTPS開頭。
這肯定是我們的意圖,以避免使 XDomainRequests基於HTTP的資源HTTPS網頁,該方案中提出了 混合內容安全威脅,許多開發者和用戶最 不明白。
但是,此限制過於寬泛,因爲它阻止HTTP 頁面發出以HTTPS頁面爲目標的XDomainRequest。雖然 確實HTTP頁面本身可能已被破壞,但沒有其它原因應該被禁止安全地接收公共資源 。
最糟糕的是,相同的方案限制意味着,Web開發人員 測試他們的網頁在本地使用file://模式會發現, 所有XDomainRequests的被阻止,因爲文件://不匹配 是http ://或https://,這是唯一有效的目標方案 (點#1)。要解決此問題,Web開發人員必須將其頁面 託管在本地Web服務器上(例如,IIS,託管的Visual Studio託管服務器等)。
要解決此限制,您可以構建一個 postMessage-Proxy-for-XDR。
我提供的託管軟件包不包含任何SSL選項。其他人有沒有其他想法?
我認爲這可能是你的問題,現在我正在尋找更密切的:http://stackoverflow.com/questions/5087549/access-denied-to-jquery-script-on-ie – 2012-04-08 02:28:12
這還沒有'工作,我會更新我的問題的理由。 – 2012-04-08 22:35:10
你看過JSONP嗎?這超出了我的經驗範圍,但這看起來像另一種可能性:http:// stackoverflow。com/questions/4669781/howto-get-jsonp-and-facebook-graph-api-to-work – 2012-04-09 03:19:37