2012-05-25 4 views
1

jQuery.parseJSON()을 사용하여 jQuery.ajax() PHP 스크립트 호출 응답을 구문 분석합니다. 일부 서버에서는 코드 0000이 응답 문자열의 시작 부분에 삽입되어 jQuery.parseJSON()이 실패하는 경우를 제외하고 코드가 작동합니다.JSON 문자열에 문자 추가

나는 그 캐릭터가 어떻게 삽입되고 있는지 알 수 없다. 응답을 표시하기 전에 문자가 PHP로 인코딩 된 문자열에 없습니다.

PHP 스크립트와 JSON 문자열을 생성한다 : 여기서

는 시나리오

$html = json_encode(myArrayOfValues); 
echo $html 

jQuery.ajax 안으로 인코딩 된 문자열을 수신한다 : I 기능 부가 고정 문제에

....success: function(html, textStatus){ 
     var response = jQuery.parseJSON(html); 
.... 

그 삽입 된 문자를 제거하고 변경 함 :

var response = jQuery.parseJSON(html); 

에 :

var response = parseJSONResponse(html); 

장소 :

function parseJSONResponse(html){ 

    var foundChar = html.indexOf("{"); 

    if(foundChar > 0){ 
     html = html.substring(foundChar); 
    } 

    var response = jQuery.parseJSON(html); 

    return response; 
} 

궁극적으로 작동하지만 삽입 된 문자가 어디에서 오는지 알고 싶습니다하고이를 방지 할 수있는 방법이있는 경우 삽입 .

+0

[질문 및 답변 도움말 편집 방법] (http://stackoverflow.com/editing-help)을 읽어보십시오. – gdoron

+0

Dammit Felix, 오늘 편집 작업이 빠릅니다. :) –

+2

파일에 다른'echo's가 있습니까? 서버 측 프레임 워크를 사용하고 있습니까? 어떤 서버를 사용하고 있습니까? –

답변

1

이것은 문자 인코딩 관련 문제 일 수 있습니다. \ u0000은 NULL 문자입니다. 이것은 우연의 일치 일 수도 있지만 조사할만한 가치가 있습니다.

json에 대해 선호하는 문자 인코딩은 utf-8이라고 생각합니다. 전화 번호부 페이지에 추가하여 문제가 해결되는지 확인하십시오.

<meta charset="utf-8"> 

희망 하시겠습니까?

+0

문자 인코딩은 utf-8입니다. – mwf