2010-12-21 35 views
0

我創建了一個簡單的方法,只是將數字遞增1並返回值。使用JQuery調用WCF的單例方法問題

[ServiceContract] 
public interface ICalc 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "getnumber")] 
    int GetNextNumber(); 

服務類:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class Calculator : ICalc 
{ 
    int i = 1; 

    public int GetNextNumber() 
    {return i++; } 
} 

該服務使用的WebHttpBinding主辦,從瀏覽器打開時效果很好。例如,當我瀏覽的http://本地主機:8083 /計算器/ getnumber,我得到

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</int> 

我每次刷新,數值一直由1 XML響應遞增(如預期由於單行爲)

問題

當我打電話使用JQuery一樣的服務:

$.ajax(
      { 
       type: "GET", 
       url: "http://localhost:8083/Calc/getnumber", 
       data: "", 
       contentType: "application/html", 
       processData: true, 
       success: function (msg) { alertResult(alert(msg.childNodes[0].xml)) } 
      } 

     ); 

我一直得到相同的(最新)號碼和調試器也不會在服務中調用。

我不明白的是:如果方法沒有被調用使用JQuery,我如何得到有效的輸出,如果方法被調用,那麼爲什麼增量沒有發生(如果我只是通過服務調用服務url直接瀏覽)r ???

謝謝!

+0

是否有可能每次都獲得「緩存值」? – decyclone 2010-12-21 11:09:41

回答

0

嘗試將cache: false添加到ajax請求的屬性中,以強制瀏覽器每次都真正請求URL,否則每個理智的瀏覽器都會緩存GET請求的響應,因爲URL不會更改。

+0

太棒了! 我加了緩存:false,它開始工作。 謝謝抖動。 但有趣的是,如果我更改爲發佈,它停止工作 – helloworld 2010-12-21 13:16:43