Ich versuche, JSON über AJAX zu meinem PHP zu schicken, aber $_POST
hat nichts und file_get_contents(“php://input”)
gibt einen langen String zurück.file_get_contents ("php: // input") gibt einen langen String zurück
AJAX-Code:
function sendData(userData) {
alert(userData);
$.ajax({
type: 'post',
url: 'testLogin.php',
dataType : 'json',
data: userData,
success: function (msg) {
if (msg.error) {
alert("error:" + msg.msg);
showError(msg.msg);
} else { // send to redirection page
alert("do something here");
}
},
error : function (XMLHttpRequest, textStatus, errorThrown) {
alert("ajaxError:::" + textStatus + ":::" + errorThrown);
}
});
}
die Warnung vor dem AJAX zeigt { "username": "Benutzer", "Passwort": "lange Hash hier", "op": "login"}
PHP-Code:
$user = $_POST('username');
$pass = $_POST["pass"];
$logString = "user: ".$user.
" pass: ".$pass.
" SERVER-REQUEST_METHOD: ".$_SERVER['REQUEST_METHOD'].
" getfile: ".file_get_contents("php://input").
"*\n*\n";
// my loging method
logMe($logString);
$returnMsg['msg']= $pass;
$returnMsg['error'] = true;
echo json_encode($returnMsg);
Dies ist, was ich in meiner Protokolldatei
userpassSERVER-request_ erhalten
METHODPOSTgetfileusernameasdpasswordcd8d627ab216cf7fa8992ca4ff36653ca6298566dc5f7d5cc9b96ecf8141c71boplogin Dies ist, was ich bei der Rückkehr Alarm Erfolg in AJAX erhalten Fehler: null
ich nicht die file_get_contents dekodieren kann („php: // input“), weil es keine Begrenzungen gibt.
edit: Die Logme-Funktion unterbrach den Loggings-Text. Ich habe das behoben und das habe ich jetzt in meinem Logfile. Benutzer: Passwort: SERVER-REQUEST_METHOD: POST getfile: { "username": "asd", "Passwort": "cd8d627ab216cf7fa8992ca4ff36653ca6298566dc5f7d5cc9b96ecf8141c71b", "op": "login"}
so sollte ich in Ordnung sein Ich werde nur dekodieren („php: // input“) die file_get_contents
Warum können Sie nicht einfach verwenden '$ _POST'? –
Die erste Zeile Ihres PHP-Codes hat '$ _POST ('Benutzername');' - ist das ein Tippfehler? – andrewsi
@PraveenKumar - Da die gesendeten Daten JSON sind und kein Format, das PHP zum Auffüllen von $ _POST unterstützt. – Quentin