ASP.net AJAX跨域访问Web Service的问题
问题是这样的,我在localhost:801站点上发不了一个web service(localhost:801/TimeService.asmx),这个服务添加了System.Web.Script.ScriptService Attribute,所以可以直接在客户端访问。在localhost站点上希望使用脚本直接访问Web Service. 因此我用ScriptManager注册了这个Web服务:
<asp:ScriptManager ID="smMain" runat="server">
<Services>
<asp:ScriptReference Path="http://localhost:801/TimeService.asmx" />
</Services>
</asp:ScriptManager>
当我用JavaScript调用这个WebService方法时,产生HTTP 500错误,用Firebug跟踪发现,JavaScript发送的异步请求地址是:http://localhost/TimeService.asmx。因此我想这个问题应该是由于AJAX跨域访问Web服务的限制造成的。
<script type="text/javascript">
function onCallClick(){
TimeService.GetServerTime();
}
</script>
我的开发测试环境是:Windows Server 2003 + IIS6 + .NET3.5 + VS2008