Otrzymuję ciąg z file_get_contents("php://input")
. próbowałem json_decode()
, ale ciąg nie jest jsonem. Oto żądanie ajax i kod php. Jak mogę pobrać JSON z żądania ajax i przekształcić go w tablicę php?
$data = file_get_contents("php://input");
var_dump($data);
echo $data;
Wydajność:
string(7) "id=myId"
"id=myId"
Ajax (obejmuje Jquery):
$.ajax({
"url": "myFile.php",
"type": "POST",
"contentType": "Json",
"data": {"id": "myId"},
}).done(function(data, status) {
if (status == "success") {
console.log(data);
}
}).fail(function(data, status, error) {
throw new Error(error);
console.log(data);
console.log(status);
});
Edytować: json_encode()
zwraca wartość null, więc nie mogę użyć odpowiedzi z tego pytania: PHP: file_get_contents ('php: // input') zwraca łańcuch dla komunikatu JSON
Odpowiedzi:
3 dla odpowiedzi № 1Jak Sammitch wspomniany w swoim komentarzu, twójaktualny kod wysyła go z kodowaniem formularza. W razie potrzeby należy skreślić dane przed wysłaniem ich na serwer, aby zostały odebrane jako JSON. Zmodyfikuj swoje połączenie, aby wyglądało tak:
$.ajax({
"url": "myFile.php",
"type": "POST",
"contentType": "application/json",
"data": JSON.stringify({"id": "myId"}),
})
Powinno to spowodować, że wejście będzie obiektem zakodowanym w formacie json.