2014-11-21 39 views
1

這是我的第一個stackoverflow問題,它有點模糊...讓我們看看它是怎麼回事:如何向Google Site Search XML API發出跨網域瀏覽器請求?

我遇到了Google Site Search XML API的問題。我只是想使用JavaScript來對XML API進行AJAX調用並檢索XML。不幸的是,這是一個CORS請求,XML API響應不包含Access-Control-Allow-Origin頭,所以請求失敗。 JSON API包含CORS響應頭,但我需要XML API。有沒有解決的辦法?我是否應該使用其他Google API來實現此目的?

或者,我可以使用腳本標記與源設置爲搜索URL,並以某種方式從腳本標記內獲取XML?我的理解是,如果它來自跨域請求,則無法訪問腳本標記中的XML結果。

任何幫助將不勝感激!

傑森

回答

1

如果XML響應不包括所需的CORS頭,你不能修改它,你不僅可以在服務器上使用代理。

代理不會受到CORS限制的影響,您的JS現在可以在同一個域上添加標頭或託管代理。

但是現在您的服務器正在發出請求,而不是客戶端的瀏覽器。所有用戶都從同一個IP請求數據。以這種方式使用Google API的規定是不同的。

+0

感謝您的回覆。我應該提到,服務器無法提出請求。服務器不允許傳出訪問互聯網。這是一個教育部門的網站,他們已經鎖定了服務器的出站互聯網訪問。該請求必須來自瀏覽器。 – 2014-11-21 17:11:36

+0

更確切地說,我必須從基於瀏覽器的請求中獲取XML,然後將XML作爲.NET表單的一部分提交給服務器。 – 2014-11-21 17:13:49

+0

您可以將代理託管在可訪問互聯網的單獨服務器上。你的代理服務可以添加CORS頭,你可以將它加載到瀏覽器中。 – ThW 2014-11-21 17:26:15