나는 최근 1.5으로 업그레이드를 호출 갔지 $ 및 기능 :JQuery와 1.5 중단 된 1.4
function showData(id) {
$.get("/url/getdata", {id : id}, function(data) {
$("#dialogData").html(data);
$("#dialogData").dialog({width: 500, modal: true, zIndex:22000});
}, "json");
}
는 더 이상 1.5의 추가와 함께 작동하지 않습니다.
파이어 버그를 보면 올바른 데이터가 반환되지만 콜백을 입력하면 기능이 중단됩니다. 모든 것이 단순히 멈 춥니 다.
어떻게 해결할 수 있습니까? 저는 1.5에서 Ajax 호출에 대한 변경 사항을 읽었습니다. 그러나 프로젝트를 통해 천건이 넘는 호출을 받았습니다. -> 모든 것을 테스트하고 버그를 테스트하는 것조차 생각조차 할 수 없습니다.
편집 : 이상하게도 dataType에 "json"대신 "text json"을 입력하면 작동합니다. 나는 모든 코드를 검토하고 실행 가능한 옵션이라고 생각하지 않는다 ...
편집 2 : json_encode ($ string)을 반환하는 대신 json_encode (array ("string"=> $ string)), 그리고 나서 $ (element) .html (data.string)을했다. 이 중 하나가 작동하지 않았고이 호출에서 얻은 JSON 데이터가 jsonlint.com에서 유효합니다.
편집 3 : json_encode 출력 이전에 시도한 설정 헤더가 작동하지 않았습니다. 지금까지 유일한 해결책은 데이터 유형을 텍스트 json으로 설정하는 것이 었습니다.
JSON을 사용하고 있지만 HTML로 직접 입력하려고합니다. 아마도 데이터 유형이 HTML 일 필요가 있을까요? 내 생각 엔 서버가 데이터 유형에 맞는 Content-Type 헤더를 출력하지 않고 jQuery가 헤더를 사용하여 컨텐츠 유형이 무엇인지 추측하려고한다. –
아니요, 방금 JSON을 사용하여 PHP의 데이터를 전달합니다. PHP는 JSON 헤더와 json_encodes를 에코합니다. 지금까지 1.4에서 훌륭하게 작동했습니다. – Swader
예, PHP가 JSON을 제대로 인코딩한다는 것을 알고 있지만'header ('Content-Type : application/json');을 호출해야 jQuery가 데이터 유형을 올바르게 추측 할 수 있습니다. 그 중 하나 또는'$ .getJSON'을 사용할 수 있습니다. –