2016-04-23 16 views
0

Ich habe diese Ajax funktioniert:Ajax Erhalten Sie erfolgreich Daten vom Server, aber nicht gesendet Es

$.ajax({ 
    url: "../../../controller/ctrl.test.php", 
    success:function(expirytime){ 
     alert(expirytime); 
    } 
}); 

aber wenn ich brauche Daten an den Server zu senden und diese Zeilen hinzufügen, dann wird es nicht die expirytime alarmieren wieder:

$.ajax({ 
    url: "../../../controller/ctrl.test.php", 
    type: 'POST', 
    contentType:'application/json', 
    data: JSON.stringify(data), 
    dataType:'json', 
    success:function(expirytime){ 
     alert(expirytime); 
    } 
}); 

bitte beachten Sie, dass data json Daten vorhanden sind. und ich habe es über diesen Codes. Also, es ist nicht leer. Ich frage mich nur, warum, indem ich POST Mechanismus in meine erste Ajax Ursache alert(expirytime); aufhören zu arbeiten?

Was ist falsch an meinem Code? danke

Update: für diesen Test Zweck, es gibt nichts in PHP-Datei, sondern nur Echo-ing Datum und Uhrzeit

<?php 
$date = '2016/04/30 00:00:00'; 
echo $date; 
?> 
+1

Was bedeutet Alarmausgabe? '[Objekt] [Objekt]'? – guradio

+0

@guradio: die Arbeit AJAX Ausgabe dieser: '2016/04/30 00: 00: 00' –

+0

vielleicht, weil der Server ablehnt, Postanfragen zu akzeptieren oder json nicht mag. Fügen Sie einen 'Fehler' Callback hinzu, um es herauszufinden! – wero

Antwort

2

Da Sie dataType: 'json' haben, erwartet jQuery die Antwort von PHP als gültiger JSON. Aber

echo $date; 

gibt keine gültige JSON zurück. Wenn jQuery JSON.parse() für diese Antwort aufruft, wird ein Fehler ausgegeben, sodass die success-Funktion nicht aufgerufen wird.

ändern, dass die Linie:

echo json_encode($date); 

und es sollte funktionieren. Oder ändern Sie dataType: 'json' zu dataType: 'text'.

1

Try This

$.ajax({ 
    url: "../../../controller/ctrl.test.php", 
    type: 'POST', 
    data: { JSON.stringify(data) }, 
    dataType: 'json', 
    success:function(expirytime){ 
     alert(expirytime); 
    } 
}); 
Verwandte Themen