Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WCF AJAX、jQuery-返回的JSON数据为空_Jquery_Ajax_Json_Wcf_Web Services - Fatal编程技术网

WCF AJAX、jQuery-返回的JSON数据为空

WCF AJAX、jQuery-返回的JSON数据为空,jquery,ajax,json,wcf,web-services,Jquery,Ajax,Json,Wcf,Web Services,我遇到了一个错误,我希望这里有人能帮助我,因为我一直在试图找出什么是错误的,嗯,太久了 好的,我正在使用WCF以及AJAX和jQuery来访问一个名为Player 这是WCF接口与相关的操作合同 [OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json,

我遇到了一个错误,我希望这里有人能帮助我,因为我一直在试图找出什么是错误的,嗯,太久了

好的,我正在使用WCF以及AJAX和jQuery来访问一个名为
Player

这是WCF接口与相关的
操作合同

    [OperationContract]
[WebInvoke(Method = "POST",
        BodyStyle = WebMessageBodyStyle.Wrapped,
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        UriTemplate = "/getplayers")]
[return: MessageParameter(Name = "Players")]
Player[] GetPlayersInTeam(int TeamId);
以下是实际的Rest服务方法:

         public Player[] GetPlayersInTeam(int teamId)
    {
        string connString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

        SqlConnection conn = new SqlConnection(connString);

        try
        {
            conn.Open();
        }
        catch
        {

        }

        List<Player> Players = new List<Player>();

        string query = "SELECT * FROM Player WHERE TeamId = @TeamId";

        SqlCommand command = new SqlCommand(query, conn);
        command.Parameters.AddWithValue("@TeamId", teamId);

        SqlDataReader reader = command.ExecuteReader();

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                Player player = new Player(teamId, Convert.ToString(reader[2]), 
                                            Convert.ToString(reader[3]));

                Players.Add(player);
            }

            return Players.ToArray();
        }

        return null;
    }
}
下面是jQuery Ajax请求:

<script type="text/javascript" language="javascript">
    $(document).ready(function () {

        var teamId = $.session.get("teamId");

        $.ajax({
            cache: false,
            type: "POST",
            url: "RestService.svc/getplayers",
            data: '{ "teamId":"' + teamId + '"}',
            contentType: "application/json; charset=utf-8",
            success: function (json, status, req) {
                var JSONReturn = json.Players;

                if (JSONReturn != null) {
                    alert("picked up players");
                }
                else {
                    alert("error");
                }
            },
            error: AjaxError
        });
(TeamSelection.aspx匿名函数是上面发布的ajax调用。正如您在底部看到的,json显然包含一个名为Players的对象,但等于null

我不明白为什么会这样。我还添加了数据类型,但没有任何效果。我很困惑:(


谢谢

在success函数中执行console.log(json),并打开控制台,以便查看json响应。还可以将数据类型设置为json,这样它将自动将json字符串解析为JavaScript对象,或者执行json.parse(json)要在成功函数中获取JavaScript对象,谢谢,我将尝试并报告。您好,控制台日志函数显示json包含来自Player类的玩家列表,但列表设置为null。我不明白为什么会这样。我还添加了数据类型,但没有任何效果。我很困惑:(你能用你的更改更新你的问题吗?你能展示JSON响应是什么样子吗?不必是全部,但足以获得结构
<script type="text/javascript" language="javascript">
    $(document).ready(function () {

        var teamId = $.session.get("teamId");

        $.ajax({
            cache: false,
            type: "POST",
            url: "RestService.svc/getplayers",
            data: '{ "teamId":"' + teamId + '"}',
            contentType: "application/json; charset=utf-8",
            success: function (json, status, req) {
                var JSONReturn = json.Players;

                if (JSONReturn != null) {
                    alert("picked up players");
                }
                else {
                    alert("error");
                }
            },
            error: AjaxError
        });
CONSOLE.LOG
XHR finished loading: "http://localhost:54033/RestService.svc/getplayers". jquery.js:18
send jquery.js:18
b.extend.ajax jquery.js:18
(anonymous function) TeamSelection.aspx:24
c jquery.js:5
p.fireWith jquery.js:5
b.extend.ready jquery.js:5
H jquery.js:5
Object {Players: null}