2011-01-14 18 views
0

我有兩個指向我的網站nathannifong.com和uncc.ath.cx的域名。 網站上的Javascript偶爾需要使用XMLHttpRequest來拉下資源。客戶端腳本中的所有資源URL均指nathannifong.com,當用戶通過uncc.ath.cx訪問該站點時,腳本會因JavaScript中的跨域安全策略而失敗。JavaScript XMLHttpRequest在從備用域名訪問時中斷

我應該更改哪些內容以便用戶可以通過任何域名來到網站,但是XMLHttpRequests仍然有效?

回答

1

如果您使用URL中的域名發出ajax請求,請將其刪除,因此該域會自動映射到用戶正在使用的域,您將不會遇到跨域問題。

+0

XMLHttpRequest無法加載http://nathannifong.com/LayerCake/simdata/rec1_i0.csv。 Access-Control-Allow-Origin不允許原始http://uncc.ath.cx。該請求是針對「simdata/rec1_i0.csv」發生了什麼事情? – Nathan 2011-01-14 16:32:38

+0

將請求URL從nathannifong.com/LayerCake/simdata/rec1_i0.csv更改爲加載/LayerCake/simdata/rec1_i0.csv,它將起作用。 – Chandu 2011-01-14 16:41:33

0

根據The CodeProject,JSONP將成爲實現此目的的一種方式。然而,我自己並沒有使用它,但可能值得一看。

1

xhr被the same origin policy約束,並且不會跨域使用 - 對於那些使用jsonp的人已經提到過了。

0

你可以看看window.location來確定頁面的域名,然後用它來加載請求?這樣你就可以確定請求是正確的。您也可以查看JSONP,但僅限於GET請求。