2

我正在爲我的公司編寫一個基於Web的工具,它運行在本地Intranet上並在IE8中運行。我相信,既然公司的計算機處於國有企業,除了IT部門之外,沒有人能夠控制瀏覽器設置,他們也不可能做出任何更改,至少不是我們所需的時間範圍。跨站點XmlHttp(XDomainRequest)

我有一個XmlHTTP請求到一個URL在「受信任的站點」(也在本地Intranet),但是當我發送請求時,我得到一個異常:「訪問被拒絕」,當我趕上異常並輸出到我的頁面,我得到「TypeError:訪問被拒絕」。

有沒有什麼辦法可以讓IE8完成這個AJAX請求?

編輯:經過進一步研究,事實證明,問題可能與可信站點/本地Intranet無關。顯然你不能做跨域XmlHttp請求。我的系統是通過IP地址訪問的,而我的AJAX腳本的目標站點是(仍然是本地的)域,它解析爲不同的IP地址。不幸的是,我已經嘗試編寫一個PHP腳本,它將從服務器端獲得頁面,但是它也拒絕沒有用戶名/密碼的連接。

在這個階段,我接受任何有關如何解決這個問題的黑客建議。如果我可以使這個功能起作用,它將爲我們節省手動輸入數據的時間。

回答

2

由於IE8不支持CORS您必須執行代理或使用JSONP發出請求,或者將所有內容都放在相同的IP下。

+0

__Same Origin Policy__被引用到不同的域,協議和端口,而不是不同的IP;)。請參閱http://en.wikipedia.org/wiki/Same_origin_policy。不過,用於聲明__JSONP__選項的+1,是目前獨特的crossbrowser方法(幾種瀏覽器具有可通過javascript處理的變量,以實現該功能,但不同)。 – diosney

+0

1)我不控制目標服務器的IP地址,不幸的是,2)服務器沒有JSONP代碼 - 我目前的代碼下載了html內容,並找到了一個特定的元素來獲取我需要的內容。 – Ozzah

+0

@Ozzah,聽起來像你運氣不好,除非你可以得到一個代理工作或與其他服務器一起工作,並讓他們返回可以使用的內容。 :) – epascarello

0

是的,無論請求在同一臺服務器上,你都不能進行跨域XmlHttp請求。 我不知道你想達到什麼,但你不能用你列出的標籤來做到這一點。

你應該考慮的一些節目。

您可以在任何需要的編程中創建一個小代理頁面,並使這些XmlHttp請求拋出該代理。

+0

頁面必須從客戶端訪問,服務器無法訪問我試圖抓取的頁面。 – Ozzah

+0

總有辦法做...研究你的選擇 –