2014-09-30 5 views
2

내가 IE9에서 유의 한 차이가 JSON 응답을 받고 일을 무너 곳 확실하지 오전 오전 :AJAX 응답이 잘못된 문자가 포함

내 JS (이 http://malsup.com/jquery/form/ 형상 - jQuery를 사용하고) :

var self = this, 
       options = { 
        beforeSubmit: this.beforeSubmit, 
        uploadProgress: this.uploadProgress, 
        success: this.uploadSuccess, 
        resetForm: true 
       }, 
       form = $(this.forms.addNewDocument); 

     $(form).ajaxSubmit(options); 

응답을 uploadSuccess에서 로깅하고 있습니다. 내가 json_encode($myresult)의 배열을 감싸는 그런

array(2) { 
["values"]=> 
array(1) { 
    ["categoryId"]=> 
    string(1) "1" 
} 
["template"]=> 
array(1) { 
    ["body"]=> 
    string(211) "<li id="18"><span class="doc-title">test4.txt</span>&nbsp;<span class="doc- date">9/30/2014</span>&nbsp;<span class="doc-user">Ling Chow</span><i class="fa fa-download"></i><i class="fa fa-times-circle"></i></li>" 
} 
} 

그리고 난 다음 내가 얻을 아약스 응답 로그 :

내 PHP에서

json_encode 사용하기 전에, 나는 점점 오전 응답은

In IE 9 
{"values":{"categoryId":"1"},"template":{"body":"<li id='\"6\"'><span class='\"doc- title\"'>test.txt&lt;\/span&gt;&nbsp;<span class='\"doc-date\"'>9\/30\/2014&lt;\/span&gt;&nbsp;<span class='\"doc-user\"'>Ling Chow&lt;\/span&gt;<i class='\"fa' fa-download\?="">&lt;\/i&gt;<i class='\"fa' fa-times-circle\?="">&lt;\/i&gt;&lt;\/li&gt;"}}</i></i></span></span></span></li> 

In IE10/Chrome 
{"values":{"categoryId":"1"},"template":{"body":"<li id=\"9\"><span class=\"doc-title\">accredmaster2.html<\/span>&nbsp;<span class=\"doc-date\">9\/30\/2014<\/span>&nbsp;<span class=\"doc-user\">Ling Chow<\/span><i class=\"fa fa-download\"><\/i><i class=\"fa fa-times-circle\"><\/i><\/li>"}} 

IE9에서는 "? ="가 많은 큰 따옴표를 추가하고 있으며 JSON을 일찍 끝내는 것처럼 보입니다. 왜 이런 일이 일어나고 IE9에서만 그렇습니까?

답변

0

을 사용하기 전에 json_encode을 (를) PHP에서 사용하십시오. 그러면 IE9에서 json을 반환하고 모든 것을 벗어나려고하지 않을 것임을 알 수 있습니다.

+0

"header ('content-type : application/json');을 추가 할 때" json_encode 전에 IE에서 JSON 응답을 파일로 저장하라는 메시지를 표시합니다. 해당 파일의 JSON은 올바른 형식이지만, 다운로드하는 대신 자바 스크립트로 데이터를 다시 보낼 수 있어야합니까? – Ognami

+0

IE에서 Ajax 요청을 통해 다운로드를 요청하고 있습니까? IE9에서 양식을 제출하는 대신 아약스 요청을 보내는 것이 확실합니까? –

+0

예, IE9에서 Ajax 요청을 보내고있는 것이 확실하지만 응답을 저장하라는 메시지가 표시되도록 콘텐츠 형식에 대한 처리 방법을 모르는 것 같습니다. – Ognami