我有我試圖查詢外部服務器上的數據庫。爲此,我要在本地服務器(Tomcat)上創建一個附加了查詢的頁面的AJAX調用(只是XMLHttpRequest對象 - 我沒有使用任何JavaScript庫)。將完全相同的URL粘貼到Firefox中會導致它嘗試下載XML文檔。我的目標是使用AJAX來獲取該XML文檔。AJAX不處理重定向302
我遇到的問題是,當我做與AJAX調用,螢火蟲表明GET響應返回302「已暫時移動」用一個紅色的X旁邊。 GET響應的頭部具有帶OAuth授權的Location參數,當我複製並粘貼位置參數時,它將我帶到正確的頁面(告訴我要下載XML對象)。
編輯:我想它使用jQuery的$.get("URL", function(data){alert(data)});
,同樣的事情發生了 - 毫無戒備,但在Firebug紅色GET請求和302。
基於這些信息,我認爲我調用數據庫第一次嘗試我重定向到一些OAuth的東西,然後返回一個授權的網址來訪問數據庫。這就是我應該用來調用數據庫,取回XML對象,然後做我的事情。 AJAX似乎無法處理重定向,而是崩潰。
我不知道這是正確的,但是,因爲我嘗試使用下面的代碼:
else if (xmlhttp.readyState == 4 && xmlhttp.status == 302){
alert("Hello 302!");
}
else {
document.getElementById("test").innerHTML = "On state: " + xmlhttp.readyState + "<br />HTTP Status: " + xmlhttp.status;
}
,並沒有給我一個警告 - 相反,它表明,它是在國家4狀態0。我不明白爲什麼它會返回狀態0。(編輯:固定在回答1和沒有提到的錯字改)
所以我的問題是:
- 究竟什麼是怎麼回事在這?
- 什麼是0的狀態,爲什麼螢火蟲給我一個X旁邊302控制檯,爲什麼沒有重定向?
- 我該如何解決這個問題?
- 一旦我解決這個問題,將我能夠抓住該XML文件,或者是有別的東西,我需要做什麼?
編輯更新:這是一個跨站點腳本問題。我繼續在外部服務器上運行完全相同的腳本,並能夠檢索和分析包含查詢結果的XML文檔。唯一的障礙是弄清楚如何從外部服務器執行此操作。我有權訪問外部服務器的配置,並將研究如何操作它以允許通過來自其他站點的數據庫查詢進行訪問。
你可以在這裏發佈一些代碼....你做服務器端的重定向? –