0

文字列を返す非常に単純な WCF 関数を作成しました。

public interface IDataService
{
    [OperationContract]
    [WebInvoke( Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json )]
    string DoWork( );
}

[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )]
public class DataService : IDataService
{
    public string DoWork( )
    {
        return "DONE";
    }
}

jQuery.ajax を使用して呼び出します。

$.ajax({
    type: "POST",
    url: service + "/DoWork",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function (data, textStatus, jqXHR) {
        alert(textStatus);       --> success
        alert(data);             --> object
        alert(data.d);           --> undefined
    },

    error: function (jqXHR, textStatus, errorThrown) {
        alert(textStatus + " : " + errorThrown);
    }
});

関数は正常に戻ります。

textStatus成功を表示します。

dataオブジェクトを表示します。

data.d未定義です。

DoWork から返された文字列を取得するにはどうすればよいですか?

4

1 に答える 1

0

console.log(data)を提案どおりに使用すると、以下に示す結果が表示されました。

Object {DoWorkResult: "DONE"}

戻り文字列には、 からアクセスできますdata.DoWorkResult

success: function (data, textStatus, jqXHR) {
   console.log(data);
   alert(data.DoWorkResult);
},

従業員のリストなどのデータ構造の場合、JSON データは配列のようにアクセスできます (JSON を返すようにサービスを構成したと仮定します)。

for(var i=0; i<data.GetEmployees.length; i++) {   
   console.log(data.GetEmployees[i].Name + " - " + data.GetEmployees[i].Position); 
}
于 2013-05-30T20:18:52.733 に答える