'FormData'仅在IE中未定义

Roy*_*M J 9 javascript jquery form-data backbone.js

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

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

SCRIPT5009: 'FormData' is undefined 
view.js, line 57 character 9
Run Code Online (Sandbox Code Playgroud)

57号线 var data = new FormData();

我听说FormData()是一个浏览器相关的功能,它与jquery库无关,而在IE中则缺少它.

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

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

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

有人有解决方案吗?

ps:我正在使用backbone.js.

har*_*h4u 3

尝试下面的代码:

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

希望这对您有帮助

  • 第 2 行和第 3 行不能解决 IE 8 的问题。我希望这篇文章能够 http://stackoverflow.com/questions/15475215/formdata-in-ie8-9 (2认同)