2013-10-21 35 views
8

コンテンツタイプapplication/x-www-form-urlencodedとして投稿する必要がある問題があります。'FormData'はIEでのみ定義されていません

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アプリにリンクされているため)サーバーサイドのコーディングを変更することはできません。

私ができることは、クライアント側で試してみることです。

誰にでも解決策がありますか?

p.s:私はbackbone.jsを使用しています。

+3

[互換表](https://developer.mozilla.org/en-US/docs/Web/API/FormData# Browser_compatibility)は、IE以上の問題がある可能性があることを示しています。フォームデータの送信方法に関するリンクもあります(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest?redirectlocale=en-US&redirectslug=DOM%2FXMLHttpRequest%2FUsing_XMLHttpRequest )をformData APIなしで使用できます。 – RobG

+0

:(それは非常に悪い...病気の修正を試す... –

答えて

3

コードの下に試してみてください。

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

・ホープ、このヘルプあなた

+2

2行目と3行目はIE 8の問題を解決しない。私はこの投稿がhttp://stackoverflow.com/ questions/15475215/formdata-in-ie8-9 –

関連する問題