Je construis une application web avec Django sur back-end et Backbone.js sur le frontalBackbone.js Problèmes avec fetch() dans IE
J'ai des problèmes avec IE quand je suis en train de chercher les données du serveur. Lorsque j'exécute ma page HTML dans IE, l'extraction de collection invoque toujours la fonction d'erreur.
Mon code:
$(function(){
var Chapter = Backbone.Model.extend({});
var Chapters = Backbone.Collection.extend({
model: Chapter,
url: 'http://ip.olya.ivanovss.info/chapters'
});
var chapters = new Chapters();
var Router = new (Backbone.Router.extend({
routes: {
"": "choose_activity",
"/": "choose_activity"
},
choose_activity: function() {
chapters.fetch({
success: function() {
AppView.render();
},
error: function() {
alert('error');
}
});
}
}))();
var AppView = new (Backbone.View.extend({
el: '.popup',
templates: {
choose_activity: Handlebars.compile($('#tpl-activities').html())
},
render: function() {
this.$el.html(this.templates["choose_activity"]({ chapters: chapters.toJSON()}));
}
}))();
Backbone.history.start();
});
Voir Django:
def chapters(request):
chapters = list(Chapter.objects.order_by('id'))
response = HttpResponse(json.dumps(chapters, default=encode_myway), mimetype='text/plain')
if request.META.get('HTTP_ORIGIN', None) in ('http://localhost', 'http://html.olya.ivanovss.info', 'http://10.0.2.2'):
response['Access-Control-Allow-Origin'] = request.META['HTTP_ORIGIN']
return response
Nous vous remercions à l'avance
Quel IE? IE8 et 9 prennent uniquement en charge CORS d'une manière non standard (comme décrit [ici] (http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds .aspx)) – robertklep
Merci, ces informations vous ont aidé à résoudre le problème dans IE8. Peut-être qu'il y a un moyen de le faire fonctionner dans IE7 aussi? – olya
Peut-être [this] (http://stackoverflow.com/questions/10654955/need-a-workaround-for-cross-domain-ajax-post-in-ie7) a quelques conseils utiles. – robertklep