‘FormData’仅在IE中未定义

我有一个问题,我需要将数据发布为内容类型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; } }); 

虽然以上在所有其他浏览器中工作正常,但我在IE9中收到以下错误。

 SCRIPT5009: 'FormData' is undefined view.js, line 57 character 9 

第57行是var data = new FormData();

我听说FormData()是一个依赖于浏览器的函数,它与jquery库无关,而在IE中则缺少它。

我使用上述方法的原因是因为我必须以application/x-www-form-urlencoded格式传递数据。

我无法更改服务器端编码(因为它与appstore中的iphone应用程序链接)。

我所能做的只是尝试与客户端。

有人有解决方案吗?

ps:我正在使用backbone.js。

试试以下代码:

 if(typeof FormData == "undefined"){ var data = []; data.push('data', JSON.stringify(inputData)); } else{ var data = new FormData(); data.append('data', JSON.stringify(inputData)); } 

希望这对你有所帮助