3

我正在从 JQuery ajax 调用中调用 WebService (ASP.NET) - 这工作正常。我想做的是将 WebService 移动到与 WebApp 不同的项目中。我已经为我的项目添加了一个 Web 引用,但现在我需要从 web.config 中获取服务 URL,并将其用作我的 JQuery ajax 调用中的 URL。我想这样做,以便应用程序支持团队可以将 WebService 移动到他们喜欢的任何地方,并且只需要更新 web.config 而无需编辑 ASPX 页面。

这样做的最佳方法是什么?我可以从 web.config 文件中获取 URL,所以我只需要知道在运行时将其传递给 jquery ajax 调用的最佳方法是什么?到目前为止,我只使用硬编码的 URL。

谢谢你。

4

1 回答 1

2

您可以从Page_Load事件中的配置中检索 url,然后将 url 存储为 HiddenField 值,可以通过 jQuery 检索:

ASPX:

 <asp:HiddenField ID="urlHiddenField" runat="server" ClientIDMode="Static" />

代码隐藏:

 protected void Page_Load(object sender, EventArgs e)
 {
      string url = RetrieveUrlFromConfig();
      urlHiddenField.Value = url;
 }

Javascript:

var serviceUrl = $("#urlHiddenField").val();
$.ajax({
  type: "POST",
  url: serviceUrl,
  success: function(msg) { }
});

如果您不想使用隐藏字段,另一种解决方案是在代码隐藏中注册启动脚本,这会将 url 分配给全局 Javascript 变量:

 Page.ClientScript.RegisterStartupScript(this.GetType(), "defineUrl", String.Format("_serviceUrl = '{0}';", RetrieveUrlFromConfig()), true);

_serviceUrl在发出 Ajax 请求的函数范围之外已经定义的 Javascript 变量在哪里?

于 2013-02-26T22:54:52.013 回答