2009-06-23 50 views
2

我有一個用Delphi編寫的站點,需要從.NET Web服務獲取數據。爲了使用Web服務,我首先附加到一個.NET網站,該網站包含一個終端用戶必須填寫的嚮導,然後該終端用戶將調用Web服務以填充AJAX下拉列表並將數據返回到調用的Delphi Web應用程序。如何通過IIS中的代理來防止跨域問題?

所以,要清楚......

  1. 德爾福網站打開.NET網站
  2. .NET網站填充AJAX從.NET Web服務下拉列表
  3. 當用戶點擊提交.NET Web嚮導調用.NET Web服務來獲取數據並返回到Delphi網站

但是調用.NET Web服務來填充下拉菜單會導致IE6(以及所有瀏覽器)將t他是一個跨域安全威脅,我得到這個頁面正在訪問不受其控制的信息。這在C#中會帶來安全風險......」的錯誤。

的下拉菜單中的代碼如下(在此情況下幫助)...

在.apsx文件

<asp:DropDownList ID="DocCategoryDropDown" 
       runat="server" 
       OnSelectedIndexChanged="DocCategoryDropDown_SelectedIndexChanged" 
       AutoPostBack="true"> 
</asp:DropDownList> 
<ajaxToolkit:CascadingDropDown ID="DocCategoryCascadingDropDown" 
          runat="server" 
          TargetControlID="DocCategoryDropDown" 
          LoadingText="[Loading...]" 
          Category="CategoryId" 
          UseContextKey="True" 
          ContextKey="NY" 
          PromptText="Select a Category" 
          ServiceMethod="GetDocCategory" 
          ServicePath="tba"> 
</ajaxToolkit:CascadingDropDown> 

文件

DocCategoryCascadingDropDown.ServicePath = path; 

如果路徑是相同的服務器的網站它工作正常,但如果路徑不是我得到警告,因此它必須是一個跨域安全問題上。

我以前在使用Java web服務時遇到過類似的問題,並且通過在Apache上使用代理來解決此問題,以使承載嚮導的Web站點和Web服務似乎存在於同一個域中,因此停止錯誤。

任何人都可以告訴我如何在IIS中做同樣的事情嗎?

如果有任何更多信息可以提供,請讓我知道,因爲我希望儘快解決此問題。

非常感謝提前。

回答