/ / „Php: // input” zwracający ciąg żądania Json ajax - javascript, php, jquery, json, ajax

"Php: // input" zwracający ciąg dla zapytania json ajax - javascript, php, jquery, json, ajax

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 № 1

Jak 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.