2014-02-09 60 views
-1

我試圖讀取遠程RSS提要,並得到follwing錯誤消息:啓用CORS訪問遠程飼料

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://*.*.*.*' is therefore not allowed access. 

誰能告訴我如何啓用CORS這樣我就可以解決這個問題 - 特別是如果我沒有管理員訪問遠程資源?

+0

你使用的是什麼主機供應商反饋回一個PHP文件?我認爲你需要將這個頭部設置添加到Apache/IIS中。 – Mino

+1

CORS是資源*所有者的機制,允許其他來源訪問它。如果您不擁有該資源,則無法啓用CORS。您*可以*設置一個代理服務器,用於獲取資源並將其交付給允許的來源的瀏覽器。 – apsillers

+0

可能的重複[訪問控制允許來源不允許](http://stackoverflow.com/questions/9327218/access-control-allow-origin-not-allowed-by) –

回答

3

遠程資源允許跨源資源共享。響應需要有一個標題,指定訪問可以來自您的域。例如:

Access-Control-Allow-Origin: http://xyz.example.com 

需要出現在響應頭中。

如果沒有對遠程站點的控制權,那麼啓用CORS到該站點(聯繫站點管理員除外)的操作並不多。

其他CORS標題以及整個方案的工作原理描述如下here(以及其他地方)。

+0

允許標頭怎麼辦? –

+0

@RoyiNamir - 這是用於飛行前請求(一個OPTIONS請求,而不是一個GET或POST)。它也是一個響應標題,需要對遠程服務器進行控制才能實現。例如參見[CORS服務器流程圖](http://www.html5rocks.com/static/images/cors_server_flowchart.png) –

1

似乎是跨域請求問題。你會考慮使用中間密碼作爲替代解決方法嗎? 然後讓你的JavaScript的要求,抓住了數據和諸如

<?php 
$url = 'http://getmethedatafromyourapi'; 

header('Content-Type:text/json'); 
echo file_get_contents($url);