2013-02-26 16 views
3

我從JQuery ajax調用調用WebService(ASP.NET) - 這工作正常。我想要做的是將WebService移動到另一個WebApp項目中。我已經爲我的項目添加了一個Web引用,但現在我需要的是從web.config中獲取服務URL,將其用作我的JQuery ajax調用中的URL。我想這樣做,以便應用程序支持團隊可以將WebService移動到他們喜歡的任何位置,只需更新web.config並不編輯ASPX頁面。jQuery ajax調用WebService存儲在web.config文件中的URL

什麼是這樣做的最佳方式?我可以從web.config文件獲取URL,所以我只需要知道在運行時將它傳遞給jquery ajax調用的最佳方式是什麼?到目前爲止,我只使用硬編碼的URL。

謝謝。

回答

2

您可以檢索從配置的URL Page_Load事件,然後將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) { } 
}); 

另一種解決方案,如果你dont't要使用隱藏域是在代碼隱藏於註冊一個啓動腳本,將分配url到全局JavaScript變量:

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

哪裏_serviceUrl是Javascript變量已經定義在將發出Ajax請求的函數範圍之外。