2017-04-01 61 views
-1

我有這樣的代碼:JSON後不工作

[WebMethod] 
public List<string> pubss(string gn) 
    { 
     List<string> onepub = new List<string>(); 
     iam_dbEntities db = new iam_dbEntities(); 
     var message = from i in db.Public_MessageSet where 
     i.RoomSet.Room_Name == gn select i; 
     foreach(var s in message) 
     { 
      onepub.Add(s.Sender.ToString()); 
     } 
     return onepub; 
    } 

這jQuery代碼:

$('#addRoom').click(function() { 
$.ajax({  
      type: "POST", 
      url: "WebService.asmx/pubss", 
      data: "gn=Programmers", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 

       alert(JSON.toString(data)); 
      } 
    }); 
}); 

當我點擊按鈕,我期待一些警報包含以下信息: 發件人,但沒有顯示,沒有一個單一的警報。

+0

正在發送的'data'不是json,因爲您的contentType暗示 – charlietfl

+0

@charlietfl所以呢? – user3144374

+0

所以如果你打算髮送json,那麼它應該是json。如果你打算髮送表單編碼數據,那麼不要設置contentType爲json – charlietfl

回答

-1

與以下修改後的代碼

$.ajax({  
      type: "POST", 
      url: "WebService.asmx/pubss", 
      data: "{gn:'Programmers'}", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 

       alert(JSON.toString(data)); 
      } 
    }); 
+0

這段代碼它也不起作用,我的意思是我看到很多教程,我看到很多代碼,但是當我嘗試做同樣的事情發生時 – user3144374

+0

致電.asmx文件中存在一行,其中包含腳本中的Web服務方法。默認情況下它已被評論。請取消註釋並檢查一次 –

-1

嘗試是否有在控制檯任何錯誤請註明? ajax的狀態碼是什麼?你如何前夕檢查以下注意事項: 1.在成功你可以試試下面:

data = data.hasOwnProperty("d") ? data.d : data; 

可以是d財產可能會導致。 2. JSON.stringify

傳遞數據
JSON.stringify({gn:'Programmers'}) 

3.在你的Ajax你有數據類型: 「JSON」,2倍。 4.如果阿賈克斯是succuss然後調試你的webMthod並檢查它是否返回正確的數據?

+0

我添加了錯誤代碼:function(req){alert(req);}並顯示錯誤:[Object] [Object]。我嘗試與console.log錯誤也沒有顯示出來。 – user3144374

+0

你是ajax狀態碼202? –