J'ai un problème où j'ai besoin de publier les données sous forme de type de contenu application/x-www-form-urlencoded
.
var inputData = {cId:"444",pageNo:"1",latitude:"49.153236",longitude:"12.040905"}; var data = new FormData(); data.append('data', JSON.stringify(inputData)); this.model.save(data, { data: data, processData: false, cache: false, contentType: false, success: function (model, resultData) { $.get(App.baseUrl + 'templates/all-offers-view.html', function (data) { template = _.template(data, { data: resultData }); that.$el.html(template); }, 'html'); }, error: function (error) { console.log("Error"); return false; } });
Bien que ce qui précède fonctionne bien dans tous les autres navigateurs, j'obtiens l'erreur suivante dans IE9.
SCRIPT5009: 'FormData' is undefined view.js, line 57 character 9
Ligne 57 étant var data = new FormData();
Ive entendu FormData()
est une fonction dépendante du navigateur et n'est pas liée à la bibliothèque jquery et que dans IE il manque.
La raison pour laquelle j'utilise la méthode ci-dessus est parce que je dois transmettre les données dans le format application/x-www-form-urlencoded
.
Je ne peux pas modifier le codage du côté serveur (car cela est lié à une application iphone dans la console).
Tout ce que je peux faire, c'est essayer avec le client.
Quelqu'un at-il une solution pour cela?
Ps: J'utilise backbone.js.
Essayez le code ci-dessous:
if(typeof FormData == "undefined"){ var data = []; data.push('data', JSON.stringify(inputData)); } else{ var data = new FormData(); data.append('data', JSON.stringify(inputData)); }
J'espère que cela vous aidera