Я использую jquery ajax в своем мобильном приложении для получения моих данных json через restful apis. Мой успокоительный API был настроен для поддержки ETAG. Мои остальные API хранятся в другом поддомене, поэтому я настроил CORS для обработки междоменных вызовов. В моей среде разработки я настроил свое мобильное приложение для запуска на test.domain.com и остальные apis для запуска на test2.domain.com, чтобы я мог тестировать междоменные вызовы. Все это прекрасно работает! Мои вызовы ajax ведут себя точно так же, как я ожидаю с etags:
Позвоните, чтобы получить контент json:
$.ajax({
ifmodified: true,
....
success: function(data){
}
Я получаю статус 200, и переменная данных в обратном вызове успеха содержит данные.
Сделав еще один вызов тому же ресурсу (не ожидая каких-либо изменений), я получаю статус 304, и переменная данных в обратном вызове успеха содержит данные (загруженные из кэша).
Пока все хорошо.
Теперь, если я сконфигурирую свою среду разработки так, чтобы мое мобильное приложение и restful apis находились в одном домене, я столкнулся с проблемами.
$.ajax({
ifmodified: true,
....
success: function(data){
}
Я получаю статус 200, и переменная данных в обратном вызове успеха содержит данные.
Сделав еще один вызов тому же ресурсу (не ожидая каких-либо изменений), я получаю статус 304 и переменную данных в undefined !!!!
Есть мысли, почему при такой конфигурации jquery не будет заполнять переменную данных тем, что находится в кеше? Я также удалил CORS и настройку междомена в своем вызове ajax, но все равно не повезло. Я использую jquery 1.7.1.