Ihre Antwort ist wahrscheinlich nicht json. Wenn Sie ,"json"
entfernen, funktioniert es, aber geben Sie String-Daten zurück, damit Ihr Code nicht funktionieren kann (json.status on string wird nicht funktionieren). Wenn Sie ,"json"
setzen, dann wird es wahrscheinlich nicht funktionieren, wenn Rückkehr nicht richtig json ist.
Was Sie tun können: verlassen „json“ am Ende, wie das ist, was Sie wollen, fügen Sie console.data(json) ;
und console.data(typeof json) ;
gerade am Anfang Ihrer Erfolgsfunktion.
Vergessen Sie wachsam, es zuerst das Skript zu stoppen, und es ist nicht so präzise wie Konsole. Verwenden Sie die Konsole, wenn Sie können.
kann ich vorschlagen, dass Sie es so zu schreiben, es besser lesbar zu machen:
console.log('form.serialize()',form.serialize()) ;
var post = $.ajax({
method : 'POST',
url : '',
data : form.serialize(),
dataType : "json"
});
post.done(function(json){
console.log('success',json) ;
console.log('typeof json',typeof json) ;
if(json.status === 'SUCCESS') {
console.log('success');
} else {
console.log('failure');
}
}) ;
post.fail(function(data){
console.log('fail',data) ;
alert('post fail') ;
}) ;
Hier index.php
meine komplette PHP-Datei ist. Die Struktur sollte wie deine aussehen. Beachten Sie einfach den oberen Teil, wo ich sicher bin, als wenn ich Post-Daten habe, ich Echo nur die JSON und zurück, so nichts anderes gesendet wird (wie Ihre Ausfahrt).
<?php
if (isset($_POST['name']))
{
echo json_encode(array('status' => 'SUCCESS')) ;
return false ;
}
?>
<form>
<input type="text" name="name" />
<input type="button" />
</form>
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<script>
jQuery('input[type="button"]').on('click',function(){
var form = jQuery(this).closest('form') ;
console.log('form.serialize()',form.serialize()) ;
var post = $.ajax({
method : 'POST',
url : '',
data : form.serialize(),
dataType : "json"
});
post.done(function(json){
console.log('success',json) ;
console.log('typeof json',typeof json) ;
if(json.status === 'SUCCESS') {
console.log('success');
} else {
console.log('failure');
}
}) ;
post.fail(function(data){
console.log(this) ;
console.log('fail',data) ;
alert('post fail') ;
}) ;
}) ;
</script>
zu arbeiten: es gibt nur Objekt-Objekt, wenn ich das json Teil –
Was Objekt-Objekt zurückgibt entfernen? Alarm (json)? Aus diesem Grund brauchen Sie eine Konsole anstelle einer Warnung, sie ist detaillierter und Sie sehen das komplette Objekt. Hast du es mit dem folgenden Code versucht? (Ich habe es bearbeitet, es hatte einige Fehler) –
Ja, ich bin gerade jetzt scheitern gerade im im Versuch, meine PHP-Ende zu überprüfen. –