2014-07-19 5 views
-1

나는 ajax 요청에서 html을 다시 가져 오려고 할 때 여러 개의 get을 얻는다. 왜 이것이이를 어떻게 수정 하는가?with (qoutation 마크 블록)로 jquery ajax 응답을 수정하는 방법

$.ajax 
    ({ 
     type: 'POST', 
     url: Generic.ajaxSluice, 
     dataType: "html", 
     data: 
     { 
      param: paramArr 
     }, 
     success:function(response) 
     { 
      console.log(response); 
     } 
    }); 

이 코드는 나에게 콘솔이 응답을 제공합니다

[[ "을 .. . 0 ","../upload/images/Untitled-2.png "], ["1 ",".. /upload/images/j.png "], ["2 ","../upload/images/peppe.png "], [" "]]

+3

인코딩 문제가있는 것으로 보입니다. 귀하의 페이지와 AJAX 소스 응답 모두에서 'UTF-8'을 사용해 볼 수 있습니다. –

+0

예, 인코딩 문제 일 수 있다고 생각했습니다. 나는 실제로 UTF-16으로 변환하려고 시도했고 UTF-8로 되돌려 보았습니다. UTF-8 이었음을 확인했습니다. 그러나 그것은 그다지 도움이되지 못했습니다. 그것은 다른 것일 수 있습니까? –

+0

UTF-16 ** ** 무엇부터 **? 서버 측 코드를 게시 할 수 있습니까? –

답변

1

AJAX에는 UTF-8이 필요합니다. 선택 사항이 아닙니다. jQuery.ajax() 매뉴얼 페이지에서 :

W3C의 XMLHttpRequest의 사양이 캐릭터 세트가 것을 지시 항상 UTF-8; 다른 문자 집합을 지정하면 변화

는 따라서 서버 측 코드를 읽고 UTF-8을 쓸 필요가있는 인코딩 브라우저를 강제로하지 않습니다. 기간. 서버가 UTF-8로 알려진 문자 (나는 종종 기호를 사용)를 입력하고 예상 바이트 (E2 82 AC)를 얻을 수 있는지 확인하는 것입니다 생성하는 경우


한 가지 방법은 확인합니다.

  • 서버 (PHP)에서 당신이 클라이언트 (자바 스크립트)에서 bin2hex()e282ac
  • 을 사용할 수 있습니다 당신이 많이보고 일 경우 encodeURIComponent()%E2%82%AC

를 사용할 수 있습니다 진수 덤프를 얻으려면 0이되면 어떻게 든 null characters이됩니다. 이것은 인쇄 할 수없는 제어 코드로서 바이너리 파일에만 표시되어야합니다 (텍스트에는 절대로 표시되지 않음). 그것은 다른 이슈를 드러낸다.

+0

contentType (기본값 : 'application/x-www-form-urlencoded; charset = UTF-8') UTF-8은 기본값이며 i는 지정하지 않았습니다. 내 요청에. 뭔가 잘못 PHP와 있나요, 그렇다면 어떻게 PHP에서 그것을 변경합니까? –

+0

이 기술로 인코딩을 사용할 수 있습니다. http://stackoverflow.com/questions/553463/jquery-ajax-character-encoding#answer-553572 – blex

+0

@KristofferFrisellJarnevid 여기서 중요한 것은 ** 서버 **가 인코딩하는 것입니다. 실제로 사용합니다. – Pointy