我有一个用Delphi编写的站点,需要从.NET Web服务获取数据。为了使用Web服务,我首先附加到.NET网站,其中包含最终用户必须填写的向导,然后调用Web服务以填充AJAX下拉列表并且将数据返回给调用的Delphi Web应用程序。
所以,要清楚......
然而,调用.NET Web服务来填充下拉列表会导致IE6(实际上所有浏览器)将此视为跨域安全威胁,并且我得到“此页面正在访问不受其控制的信息。”造成安全风险......“错误。
下拉代码如下(如果这有帮助)......
在.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>
在C#文件中
DocCategoryCascadingDropDown.ServicePath = path;
如果路径与网站位于同一台服务器上,它可以正常工作,但如果路径不是,我会收到警告,因此它必须是跨域安全问题。
之前我遇到过与Java Web服务类似的问题,我通过在Apache上使用代理来解决这个问题,以便使托管向导的Web站点和Web服务看起来存在于同一个域中,因此停止错误。
有人能告诉我如何在IIS中做同样的事情吗?
如果我能提供更多信息,请告诉我,因为我真的希望尽快解决这个问题。
非常感谢提前。
答案 0 :(得分:3)
好的,经过大量谷歌搜索(咬牙切齿)后,我发现这个网站能够很好地解释解决方案。
http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx
了解如何询问 正确的 问题是多么重要:)