2012-05-31 23 views
0

我有,在一些數據我們拉一個ColdFusion頁以下,一旦頁面加載:使用Ajax調用不同服務器(同一網絡)上的ColdFusion腳本?

ajaxRequest#RowURnumber[I]#.open("POST", "/cfapps/include/scriptname.cfm?i=#RowNumber[I]#", true); 
ajaxRequest#RowURnumber[I]#.send(null); 

有沒有可能來承載我們的網絡在不同的服務器上運行此腳本,並與調用它上面的代碼?我曾嘗試使用http地址和UNC路徑,但它們似乎不起作用。

任何想法將不勝感激。

謝謝。

回答

2

您不能簡單地使用ajax訪問除同一個域以外的任何頁面,即使它是同一個網絡。

您的解決方案,你可以使用一個代理頁面中您的域名, 從前端,你會在你的域上執行一個AJAX請求這個代理頁面, 將從該ColdFusion頁獲取內容並把它傳遞直到前端。

$.ajax({ 
    type:'GET', 
    url :'url to a proxy page in server A', 
    success: function(){//...} 
}); 

在服務器A,你將有一個代理頁說proxy.cfm

<cfhttp url="http://www.serverB.com/the actual page..." /> 
<cfset html = cfhttp.FileContent /> 
<cfoutput>#html#</cfoutput> 

所以,你的AJAX會要求服務器A從服務器獲取B中的內容,並將其返回。

+0

嗨Broncha,感謝您的回覆。你能否詳細說明這種情況究竟會如何結合在一起? – jj2

+0

你的後端寫入了什麼? – Broncha

+0

ColdFusion。我正嘗試使用Ajax從「服務器B」上的ColdFusion頁面調用「服務器A」上的ColdFusion腳本。 – jj2

1

如果腳本位於不同的域,那麼瀏覽器的同源策略將阻止腳本運行。有一些方法可以解決這個問題(JSONP,CORS)。 JSONP將是更加向下兼容的解決方案。

相關問題