2009-06-23 24 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中做同样的事情吗?

如果有任何更多信息可以提供,请让我知道,因为我希望尽快解决此问题。

非常感谢提前。

回答