我正在構建經常從Facebook加載圖片的網站。 我一直在試圖使用從Mozilla本教程是本地優秀作品,但是當我去住,Facebook並沒有讓我進入這樣的圖像和回報:加載來自Facebook的跨源圖像
「跨源圖像負荷由十字否認-Origin資源共享策略「。
有什麼辦法解決這個問題(這不涉及緩衝圖像我自己的服務器)?
我正在構建經常從Facebook加載圖片的網站。 我一直在試圖使用從Mozilla本教程是本地優秀作品,但是當我去住,Facebook並沒有讓我進入這樣的圖像和回報:加載來自Facebook的跨源圖像
「跨源圖像負荷由十字否認-Origin資源共享策略「。
有什麼辦法解決這個問題(這不涉及緩衝圖像我自己的服務器)?
您可能必須擁有API密鑰才能執行此操作。請諮詢https://developers.facebook.com/docs/reference/api/
如果您想訪問您可以從瀏覽器訪問的跨域內容,請使用PHP中的CURL並使用它調用站點。我將用簡單的php curl腳本更新答案。你可以用它來下載圖像,它就像一個代理:)
<?php
$url = $_GET['url'];
function request($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($c, CURLOPT_TIMEOUT, 5);
$response = curl_exec($c);
$responseInfo = curl_getinfo($c);
curl_close($c);
if (intval($responseInfo['http_code']) == 200) {
return $response;
} else {
return false;
}
}
echo request($url);
?>
有什麼辦法來解決這個問題(不涉及緩衝圖像我自己的服務器)?
不需要。圖像需要在您控制的服務器上(或者您對任何人都有足夠的影響力來授予權限)。您無法在Facebook的服務器上設置CORS標頭,因此在託管圖片時,圖片無法跨域訪問。
謝謝,但你能解釋API密鑰在這裏可以如何幫助嗎?我的意思是,除非CORS被Facebook啓用,否則通常不允許從遠程域(這裏是該圖像的像素)訪問內容。你的鏈接只是談論圖形API,但這工作得很好。問題是我試圖使用localStorage.setItem下載圖像,因此我認爲我必須對img.crossOrigin執行一些操作,否則它根本不起作用。 但是,如果支持CORS,我無法在網上找到任何東西。 –
如果您想訪問您可以從瀏覽器訪問的跨域內容,請使用PHP中的CURL並使用它調用該網站。我將用簡單的php curl腳本更新答案。 – stamat