2012-03-14 54 views
0

在我們的web應用程序中,我們已經做了一些ajax請求,所以我們可能會遇到跨域問題。javascript跨域沒有jsonp和代理

由於我們使用ajax來請求返回xml文檔的標準web服務。

所以我們不能使用jsonp。

另外我們不想使用代理。由於服務器可能會使用反向代理,在這種情況下代理可能無法工作。

然後我想知道是否有任何其他方式來解決這個跨域問題?


這裏提到的服務是標準的ogc web服務。

An example.

Another example


UPDATE2: 我們避免使用代理中,我們有滿足的問題時,該服務器使用反向代理。

例如,公開的服務器地址是'http://100.1.1.1'。

我做了一個ajax requst:'http://100.1.1.1/proxy.ashx?url=http://100.2.2.2/xx.img'。

然後,服務器'100.1.1.1'向本地網絡發送此請求,其IP地址爲'192.168.1.1',則proxy.ashx現在無法訪問互聯網'100.2.2.2'。所以... :(。 enter image description here

+0

我還沒有看到*爲什麼*您不能使用JSONP。 – Matt 2012-03-14 10:43:39

+0

如果我請求'http:// server/service?xx = xx'然後我得到一個xml文檔。 ''所以我不能在回調中包裝xml文檔。 – hguser 2012-03-14 10:47:07

+0

你有控制服務器嗎?如果是,您可以輸出JSONP(與其名稱相反,響應不必包含JSON)。 – 2012-03-14 10:49:14

回答

4

XHR2允許跨域請求。如果Web服務你從允許CORS獲取數據,你可以使用 - 但你要注意,這是only supported in

  • 鉻3+
  • 的火狐3.5
  • 的Safari 4+
  • 的Internet Explorer 8+
  • 歌劇12+
+0

我們必須支持IE6 +。:(。 – hguser 2012-03-14 10:47:48

+0

然後你必須使用JSONP或代理。 – 2012-03-14 11:41:38

1

我曾經嘗試使用Flex + crossdomain.xml的,甚至是JavaFX應用程序去做些跨域工作