2015-04-30 2 views
1

У меня есть рейтинговая система с API для обработки рейтингов. О методе Get является следующий код:IE9 ресурс, сохраняющий массив символов вместо объекта JSON

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 получает массив символов из возвращаемой строки. Может кто-нибудь сказать мне, что происходит, и как я могу это исправить?

+0

Попробуйте очистить кэш: http://stackoverflow.com/questions/22871236/getting-angularjs-resource-in-msie-9-returns-empty-array – alex

+0

@alex, попробовал, ничего не изменил в результате – Kiwi

+0

Если у вас есть инструмент разработчика проверить сеть и проверить ответ. – Innovation

ответ

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 он в конечном итоге работает просто отлично