我有一个用 Delphi 编写的网站,需要从 .NET Web 服务获取数据。为了使用 Web 服务,我首先附加到一个 .NET 网站,该网站包含最终用户必须填写的向导,然后该向导调用 Web 服务以填充 AJAX 下拉列表并将数据返回到调用 Delphi Web 应用程序。
所以,要明确的是...
- Delphi网站开通.NET网站
- .NET 网站从 .NET Web 服务填充 AJAX 下拉列表
- 当用户单击 .NET Web 向导上的提交时,它会调用 .NET Web 服务来获取数据并返回 Delphi 网站
然而,调用 .NET Web 服务来填充下拉菜单会导致 IE6(实际上是所有浏览器)将此视为跨域安全威胁,并且我收到“此页面正在访问不受其控制的信息。这构成了安全问题”风险...”错误。
下拉菜单的代码如下(如果这有帮助的话)......
在 .aspx 文件中
<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 服务看起来存在于同一域中,从而阻止错误。
谁能告诉我如何在 IIS 中做同样的事情?
如果我可以提供更多信息,请告诉我,因为我真的很想尽快解决这个问题。
提前谢谢了。
好吧,经过多次谷歌搜索(和咬牙切齿),我发现这个网站很好地解释了解决方案。
http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx http://dotnetslackers.com/columns/ajax/MashitUpwithASPNETAJAX.aspx
只是为了表明知道如何提问是多么重要right问题 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)