2013-10-21 2 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 형식으로 전달해야하기 때문입니다.

서버 측 코딩을 변경할 수 없습니다 (앱 스토어의 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/이되기를 바라고 있습니다. 질문/15475215/formdata-in-ie8-9 –