【问题标题】:'FormData' is undefined in IE only'FormData' 仅在 IE 中未定义
【发布时间】:2013-10-21 05:04:23
【问题描述】:

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

【问题讨论】:

标签: javascript jquery backbone.js form-data


【解决方案1】:

试试下面的代码:

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

希望对你有帮助

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
相关资源
最近更新 更多