저는 PHP에서 파일을 비동기 적으로 게시하기 위해 자바 스크립트에서 일부 데이터를 가져 오려고 시도했습니다. 데이터를 가지고 무엇을하려고 시도조차하지 않고, 단지 ajax 호출에서 빠져 나올 var_dump 일뿐입니다. NULL은 계속 반복됩니다.Javascript의 JSON이 PHP에서 디코딩되지 않습니다.
JSON을 JSONLint와 비교해 보았습니다. 유효성을 검사했습니다. 나는이 작업은 JSON.stringify에서 내 JSON을 받고 있어요 - 방화범이 내게 말하길 내가 다음을 받고 있어요 :
{"items":[["sa1074","1060"],["sa1075","1061"]]}
내가 해봤 PHP는 : // 입력뿐만 아니라 json_decode_nice을 기능에 대한 PHP 매뉴얼 의견에서 , 및 utf8_encode 사용하여 시도했다 - 내 JSON 뭔가 잘못된 무엇입니까?
편집 : Derpity 디 아마이 게시물을 좀 더 하하 계획해야합니다. 여기 내 PHP
function json_decode_nice($json, $assoc = FALSE){
$json = str_replace(array("\n","\r"),"",$json);
$json = preg_replace('/([{,])(\s*)([^"]+?)\s*:/','$1"$3":',$json);
return json_decode($json,$assoc);
}
if (isset($_POST['build'])){
$kit = file_get_contents('php://input');
var_dump(json_decode_nice($kit));
}
(PHP에서 제안 수동 주석을 사용하여) 그리고 JS 그것을 만드는 데 사용되는 : 또한
var jsonKit = JSON.stringify(kit);
$.post("kits.php?", {"build" : jsonKit},
function(data) {
$("#kitItems").html(data);
});
: 우리의 호스트는 PHP 5.2에 - 나는 업로드 할 때 나는 이것을 발견 완벽하게 좋은 레드 빈 클래스 만 폭발 할 수 있습니다. 기존의 redbean을 다시 구현해야했습니다. 우리 호스트는 체포되었습니다.
해결 : 모든 사람에게 감사의 말을 전했습니다. $ _POST에서 슬래시로 인용문을 이스케이프 처리하고 json_decode가 질식하고 있다고 생각했습니다. 디코딩 전에이 행을 추가하면 문제가 해결됩니다. 또한 연관 배열을 반환하기 위해 true를 설정하는 것을 잊었습니다. 감사! 코드를 보지 않고
$kit = str_replace('\\', '', $kit);
당신이 전화를 걸 특히 어떻게 더 많은 코드를 제시해주십시오. 'var_dump ($ _ POST)'가 NULL이되면, 문제는 더 일찍 체인 –
JS와 PHP를 게시하십시오. :) – Alex
'json_last_error()'와 친구가되는 것을 잊지 마라. 문제는 다른 곳에있는 것처럼 들린다. – mario