我試圖允許訪問我網站上的每個子域以允許跨子域AJAX調用。有沒有指定像*.example.com
或交替網站的所有子域的方式,爲什麼下面不工作時,我列出了多個域名:指定具有訪問控制的多個子域名Origin
header('Access-Control-Allow-Origin: http://api.example.com http://www.example.com');
我走過這似乎是類似以下問題閱讀,如果不是這個一樣的,除了我想要訪問子域的事實,這一個是指一般的域。
Access-Control-Allow-Origin Multiple Origin Domains?
如果上面的問題是解決這個問題,那麼我怎麼能夠檢索從標題的由來。看起來$ _SERVER ['HTTP_ORIGIN']是非常不可靠的,甚至沒有跨瀏覽器。我需要能夠在任何瀏覽器中查看可能會在嘗試使用JavaScript發送AJAX調用時顯示錯誤的來源。
正如你所說,你的問題的第一部分是在鏈接中回答。關於第二個問題:如果瀏覽器嘗試跨域策略禁止的Ajax調用,則請求將失敗,根本無法訪問服務器。該錯誤將不得不在瀏覽器中處理。 – 2012-03-09 09:03:05
我知道我會收到一個錯誤,但是在調用嘗試訪問外部文件之後將會提供此錯誤。如果文件拒絕它,那麼錯誤將被拋出。如果我設置頭允許訪問所有的話,它會工作,但這對我來說太開放了,所以我想將它設置爲與請求的來源有關。因此,我想知道如何使用PHP獲取請求的來源。 – 2012-03-09 10:02:36
你能詳細說明你的意思嗎「$ _SERVER ['HTTP_ORIGIN']是非常不可靠的,甚至沒有跨瀏覽器」? $ _SERVER ['HTTP_ORIGIN']是一個服務器端的值,不會在瀏覽器中執行。 – monsur 2012-03-09 19:42:54