2014-02-25 65 views
1

我想從ma Web Service方法檢索數據,但它返回null。jquery ajax在迴應中返回null

我用一個方法(我的Web服務中的GetTEST())測試返回一個字符串,它運行良好。

當我使用WCFTestClient.exe進行測試時,Statistic_1方法運行良好,但使用JQuery它將返回null。

下面是JavaScript代碼:

function getStatistic1() { 

var response; 
var allstat1 = []; 

$.ajax({ 
    type: 'GET', 
    url: 'http://localhost:52768/Service1/Statistic_1', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success: function (msg) { 
     response = msg.Items; 
     console.log(msg); 

     for (var i = 0; i < response.length; i++) { 
      allstat1[i] = [response[i].Geografisch_zone]; 
     } 
     fillDataTable(allstat1); 
    }, 
    error: function (e) { 
     alert("error loading statistic 1"); 
    } 
}); 
} 

這裏是我的IService1.cs

[DataContractFormatAttribute] 
[ServiceContract(Namespace ="WSSage100")] 
public interface IService1 
{ 

    [OperationContract] 
    [WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json)] 
    string GetTEST(); 

    [OperationContract] 
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)] 
    ResponseStatistic_1 Statistic_1(); 
} 

這裏是Service1.svc

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class Service1 : IService1 
{ 

    public string GetTEST() 
    { 
     return "OKKKKKKKK"; 
    } 

    public ResponseStatistic_1 Statistic_1() 
    {...} 
} 

這裏是「執行console.log(味精) 「displays:Object {ErrorMessage:」對象引用未設置爲對象的實例。「,ErrorOccured:true,Items:null,NbReco RD:0}

ResponseSatistic_1類:

public class ResponseStatistic_1 : IBaseClientEntity 
{ 
    public ResponseStatistic_1() 
    { 

    } 

    public ResponseStatistic_1(Statistic_1 [] items) : this() 
    { 
     this.Items = items; 
    } 

    #region Properties 
    public Statistic_1[] Items 
    { 
     get; 
     set; 
    } 
} 

而且Statistic_1類:

public class Statistic_1 
{ 
    private string _geografisch_zone; 
    private decimal[] _sum; 
    private int _yearStart; 
    private int _yearEnd; 

    ... 
} 

回答

0

我解決了這個問題。

我在我的解決方案中有兩個項目,WCF和一個應用程序控制臺,它們將會關閉Web服務。

我還在GettingStartedHost項目的app.config中添加了連接字符串,現在它運行良好。

1

您正在返回的字符串"OKKKKKK"但你設置好的的數據類型爲JSON在$.ajax功能,所以你必須取消設置dataType或返回類似"{response: 'OKKKK'}"

+0

我不明白,我的GetTEST()方法運行良好,問題出在我的Statistic_1方法。你想讓我改變什麼數據類型? – Jayce

+0

我在SqlConnection的Statistic_1方法中有個例外。異常是:對象引用未設置爲對象的實例。你有什麼想法嗎? – Jayce

0

請更改response = msg.Items;response = msg;

也@campsjos答案說。

+0

我編輯我的帖子,你可以看到2個班。我必須把msg.Items沒有?因爲這是一個Object(這裏是ResponseStatistic_1),它有一個Object(這裏是Statistic_1) – Jayce

+0

的數組,我在SqlConnection的Statistic_1方法中有一個異常。異常是:對象引用未設置爲對象的實例。你有什麼想法嗎? – Jayce