3

JQuery ajax呼び出しからWebService(ASP.NET)を呼び出しています-これは正常に機能しています。私がやりたいのは、WebServiceをWebApp用のプロジェクトとは別のプロジェクトに移動することです。プロジェクトにWeb参照を追加しましたが、必要なのは、web.configからサービスURLを取得し、それをJQueryajax呼び出しのURLとして使用することです。これを実行して、アプリケーションサポートチームがWebServiceを好きな場所に移動でき、Web.configを更新するだけで、ASPXページを編集する必要がないようにします。

これを行うための最良の方法は何ですか?web.configファイルからURLを取得できるので、実行時にjquery ajax呼び出しにURLを渡すための最良の方法を知る必要がありますか?これまでのところ、ハードコードされたURLのみを使用してきました。

ありがとうございました。

4

1 に答える 1

2

イベントの構成からURLを取得してから、Page_LoadURLを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);

_serviceUrlAjaxリクエストを行う関数のスコープ外ですでに定義されているJavascript変数はどこにありますか。

于 2013-02-26T22:54:52.013 に答える