非假想但抽象的情況:AJAX,子域和200 OK應答
我有一個域www.foo.com,從我在做一個AJAX POST到beta.foo.com。檢查XHR對象時,我看到響應頭爲200 OK,但沒有響應文本 - 我甚至得到12B長的響應,這是我期望的確切響應(12個字符的字符串) - 但響應文本是空白。
如果這是一個跨領域的問題,爲什麼我會收到200 OK,更好的是 - 爲什麼我看到的beta.foo.com側的PHP函數火 - 但沒有得到響應?
非假想但抽象的情況:AJAX,子域和200 OK應答
我有一個域www.foo.com,從我在做一個AJAX POST到beta.foo.com。檢查XHR對象時,我看到響應頭爲200 OK,但沒有響應文本 - 我甚至得到12B長的響應,這是我期望的確切響應(12個字符的字符串) - 但響應文本是空白。
如果這是一個跨領域的問題,爲什麼我會收到200 OK,更好的是 - 爲什麼我看到的beta.foo.com側的PHP函數火 - 但沒有得到響應?
你不能做跨子域AJAX調用那麼容易。有一種叫做Same origin policy的東西阻止你這樣做。如果你想排序這個問題,你需要使用JSONP或Iframes。
安裝螢火蟲,你會看到一個HTTP 200代碼和一個錯誤:這個錯誤是SOP作用。
JSONP是這種情況下的票據。 – 2010-10-16 16:51:05
你提到你正在檢查的responseText屬性。有可能你的回覆是XML格式嗎?
如果您發送XML請求,或者響應類型爲'text/xml'
,您將得到一個值爲responseXML
。我認爲responseText
屬性可以是空白的,如果它是XML格式。從谷歌
隨便舉個例子:
它不是一個跨域問題。 AJAX沒有任何安全模型。 – 2010-05-15 02:31:00
您是否使用螢火蟲查看回應文字? – 2010-05-15 02:40:58
發佈您的JavaScript代碼。沒有看到代碼,沒有足夠的信息來完全調試問題。 – Asaph 2010-05-15 03:04:21