2011-06-13 73 views
0

在我公司的網絡上,有一個頁面可根據通過URL傳入的點生成地形範圍梯度KML。問題在於該頁面平均需要30秒才能完成請求,而我每天需要大約70個請求。我打算做的是讓我的辦公室的網站使用本地副本,並且只有在座標改變時才能重新下載。但是我很難讓這個工作異步工作。現在我使用$ .get()來嘗試異步加載它們。但是,我沒有得到網站使用get的迴應。它返回狀態200 OK,但是該行在Firebug中以紅色突出顯示。當我通過我們的網站託管kml網站時,它會返回200 OK,並且將KML的內容作爲響應。爲什麼遠程工具不能正確下載?通過php腳本異步下載文件

+0

您使用的網站與您嘗試使用'.get'的網站位於同一個網域嗎? – 2011-06-13 13:10:56

+0

不,但它是相同的網絡。我錯過了它的重要性,因爲該網站會生成一個KML文件並將其發送到瀏覽器。 – Nathan 2011-06-13 15:17:27

回答

3

Same Origin Policy阻止您向另一個域發出請求。您需要查看CORS [如果瀏覽器和其他網站支持],JSONP [如果其他網站支持]或本地代理。

+0

但是,不應該返回文件的網站讓我訪問它作爲臨時文件或什麼?我明顯錯過了一些東西。該網站只是返回一個KML文件,我的服務器不應該將其保存爲臨時文件嗎?如果我做了像file_get_contents這樣的事情,那很好。如果有一個不是jQuery的解決方案,那也很好。我更喜歡它是PHP,但是我一直沒有能夠在不凍結我的服務器的情況下同時下載所有文件,直到完成全部工作。 – Nathan 2011-06-13 15:12:17

+0

JavaScript無法訪問其他域。它與該服務器或服務器無關。 JavaScript運行在客戶端上,而不是服務器上。您可以在幾行PHP代碼中編寫代理。 [谷歌(http://www.google.com/search?q=php+ajax+proxy) – epascarello 2011-06-14 11:15:35

1

您不允許發送跨域AJAX請求。如果您嘗試從另一個域下載帶有$ .get的文件,可能會出現問題。