IE9资源查找char的数组而不是JSON对象

时间:2015-04-30 14:33:23

标签: javascript json angularjs internet-explorer-9 ngresource

我正在使用带有API的评级系统来处理评级。在Get方法上有以下代码:

public JToken Get(string vid) {
    JToken result = null;

    var status = new {
        Rating = 100,
        UserRated = true
    };
    result = JsonConvert.SerializeObject(status);


    return result;
}

在我的服务中我做了:

factory('Rating', ['$resource',
function ($resource) {
    var src = config.getValue("api.rating");
    return $resource(src, {}, {
        get: {
            method: 'GET',
            withCredentials: true,
            responseType: 'json'
        }
    });
}])

在Firefox和Chrome中我可以正常工作:

Rating.get({ vid: $scope.video.Id }, function (res) {
          $scope.videoRating = res.Rating;
}

但是在IE9中它从正在返回的字符串中获取一个char数组。 有人可以告诉我发生了什么,以及我如何解决它?

1 个答案:

答案 0 :(得分:0)

我通过执行以下操作修复了它:

public JObject Get(string vid) {
    String result;

    var status = new {
        Rating = 100,
        UserRated = true
    };
    result = JsonConvert.SerializeObject(status);


    return JObject.Parse(result);
}

似乎Jtoken存在问题,通过对JObject进行显式解析,它最终工作得很好