2010-06-14 75 views
33

我有服務器A(www.example.com)發送信息到服務器B.我只能在服務器A上的HTML/JS(並且必須在服務器B上執行「運算」),所以我試圖發送表單數據通過AJAX(試圖避免表單發送到服務器B - 不要問)。是否將AJAX調用到跨域腳本的子域?

很明顯,做一個AJAX調用跨域被認爲是XSS和一個很大的禁忌,但如果我把服務器B放在一個子域(sub.example.com),那會不會被認爲是好的?如何檢測跨域錯誤?瀏覽器是否查找DNS記錄? IP地址?

在此先感謝您的幫助。

+0

同源策略主要是爲了避免CSRF(http://en.wikipedia.org/wiki/Cross-site_request_forgery),並有助於減輕可能的XSS攻擊的影響。 – 2010-06-14 20:25:19

回答

37

子域被認爲是不同的,並且將失敗Same Origin Policy,除非兩個子域聲明相同的document.domainDOM屬性(即使這樣,不同的瀏覽器行爲不同)。

6

簡短的回答:沒有。見Same Origin Policy

你只能一個XHR請求到同一臺主機,端口和協議。

如果您不想堅持使用Ajax,您可以查看JSON-P。 (XSS是一個完全不同的水壺,其中一個站點允許數據被注入到它(例如通過URI),被視爲JS,允許第三方將人員引導到您的站點,而他們被記錄進入它並竊取或編輯數據。)