2012-08-09 81 views
0

這就是我的服務的樣子。
我有一個類和一個接口。我的服務已公開,我可以通過wcftestClient工具調用它們。jQuery使用json wcf C#服務

我可以像我一樣使用jQuery來使用Web服務嗎?

我遇到的問題是在jQuery中調用它。它以JSON格式返回。 我在螢火蟲中得到以下錯誤。

狀態碼: HTTP/1.1 404未找到

的.cs

public static string Serialize(object obj) 
     { 

      if (obj == null) 
      { 
       string temp = ""; 
       temp = ""; 
       obj = temp; 
      } 

      var jsonSerializer = new DataContractJsonSerializer(obj.GetType()); 
      string returnValue = ""; 
      using (var memoryStream = new MemoryStream()) 
      { 
       using (var xmlWriter = JsonReaderWriterFactory.CreateJsonWriter(memoryStream)) 
       { 
        jsonSerializer.WriteObject(xmlWriter, obj); 
        xmlWriter.Flush(); 
        returnValue = Encoding.UTF8.GetString(memoryStream.GetBuffer(), 0, (int)memoryStream.Length); 
       } 
      } 
      return returnValue; 
     } 

     public string HelloWorld() 
     { 
      return "Hello World"; 
     } 

接口

[OperationContract]   
     string HelloWorld(); 

jQuery的

function GetService() { 
          var BizName = $('#txtBizName').val(); 
          //alert(BizName); 
          $.ajax({ 
           url: "http://www.website.com/WCFService/EdWebService.svc?HelloWorld", 
           type: "GET", 
           dataType: "json",        
           contentType: "application/json; charset=utf-8", 
           success: function(msg) { 
            $('#status').html('Output: '+msg['d']['Id']); 
           }, 
           error: function(e) { 
            $('#status').innerHTML = "Unavailable"; 
           }        
          }); 

          alert(BizName); 
         } 
+0

順便說一句,你有你的網頁jQuery和WCF服務在同一個域和端口? – 2012-08-09 13:03:18

回答

0

您應該首先將url: "http://www.website.com/WCFService/EdWebService.svc?HelloWorld" 替換爲url: "http://www.website.com/WCFService/EdWebService.svc/HelloWorld"

原因:您沒有調用HelloWorld方法,而是將'HelloWorld'作爲參數(以非常錯誤的方式)傳遞給您的某個未知方法(我不知道哪個方法解析了服務名稱,而沒有指定方法)服務。

然後它應該工作。如果沒有,請更新您的問題。

+0

我有一個叫做HelloWorld的方法,它沒有參數並返回一個字符串「HelloWorld」。我怎麼稱呼它? 此網址顯示wsdl http://www.website.com/WCFService/EdWebService.svc?HelloWorld,以下網址在添加到http://www.website.com/WCFService/EdWebService.svc/HelloWorld時會返回錯誤400一個瀏覽器網址。 – 2012-08-09 11:22:48

+0

@KrivahnDoss請嘗試在$ ajax調用中更改GET to POST。我提供的URL是正確的,因爲錯誤404(未找到)現在被替換爲錯誤400(錯誤的請求)。現在您應該創建適當的請求。 – 2012-08-09 12:06:20