Heim > Backend-Entwicklung > PHP-Tutorial > Zusammenfassung einiger Fehler bei der Verwendung von Ajax in PHP

Zusammenfassung einiger Fehler bei der Verwendung von Ajax in PHP

墨辰丷
Freigeben: 2023-03-27 22:10:02
Original
1330 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen vorgestellt, die einige häufige Fehler bei der Verwendung von Ajax in PHP zusammenfassen. Freunde, die es benötigen, können darauf zurückgreifen.

Wenn PHP als Backend verwendet wird, verwendet das Front-End-JS die Ajax-Technologie Bei der gegenseitigen Übermittlung von Informationen treten häufig Fehler auf, was es für Anfänger etwas verwirrend macht. Fassen Sie Fehler und Erfahrungen zusammen und überprüfen Sie diese jederzeit in der Zukunft.

Das erste Problem besteht darin, dass, wenn im Front-End keine Fehler vorliegen, das Debuggen der Seite auch zeigt, dass kein Problem vorliegt, Ajax jedoch die von der Back-End-PHP-Datei gesendeten Informationen nicht abrufen kann :

Der Front-End-Code lautet wie folgt:

$.ajax({
  url:'1.php',//目的php文件
  data:{"age":12,"name":'zh'},//传送的数据
  type:‘post',//方式post/get
  dataType:'json',//数据传送格式
  success:function(response)
  {
  console.log(response);
  },
  error:function(response)
  {
  console.log(response);
  console.log("错误");
  }
});
Nach dem Login kopieren

Die PHP-Rückseite -Endcode lautet wie folgt:

$postAge = $_POST['age'];
$postName = $_POST['name'];
echo $postAge;
echo $postName;
Nach dem Login kopieren

Nachdem die Seite angezeigt wird, sieht die F12-Debugging-Ansicht wie folgt aus:

Der Statuscode ist in Ordnung und der Status ist 200. ResponseReady ist 4, was darauf hinweist, dass beim Senden von HTML-Dateiinformationen an PHP kein Problem vorliegt. Und PHP hat auch Informationen zurückgegeben. Aber warum geht das Programm auf einen Fehler statt auf Erfolg?

Sie müssen zu diesem Zeitpunkt vorsichtig sein! Weil mehrere Echos im PHP-Backend die Daten nicht im JSON-Format organisieren. Mit anderen Worten: Was PHP zurückgibt, ist eine Zeichenfolge und keine Daten im JSON-Format. Jemand sagte, ich solle json_encode() hinzufügen? Dies ist nicht möglich, da die Funktion von json_encode() nicht klar ist. json_encode() und json_decode() sind ein Paar.

json_encode(json), JSON in Daten im JSON-Format organisieren. Selbst wenn der PHP-Backend-Code im obigen Beispiel wie folgt umgeschrieben wird: echo json_encode(postAge); und echojsonencode(postName);, ist er falsch. Da dadurch nur ein einzelnes PostAge und ein PostName im JSON-Format organisiert werden, es aber zwei Rückgaben gibt, gibt es auch zwei Antworten. Auf der Debugging-Seite des Browsers können Sie auch einen Beitrag und zwei Antworten sehen. Infolgedessen sind die beiden an das Front-End zurückgegebenen Daten im JSON-Format keine Daten im JSON-Format mehr (ich verstehe es als JSON-Verschmutzung, was für das Verständnis hilfreich ist). Das heißt, einzelne Daten liegen im JSON-Format vor, mehrere Daten im JSON-Format werden jedoch „zufällig“ miteinander kombiniert, ohne gemäß dem JSON-Format zusammengeführt zu werden, was zu „Verschmutzung“ führt. Dies führt dazu, dass das gesamte Datenformat unübersichtlich ist und nicht zu jedem Zeitpunkt der Datenverarbeitung und -übertragung erkennbar ist.

json_decode(json,true/false)Die Funktion besteht darin, JSON in einem Array oder Objekt (als Klasse verstanden) zu organisieren. True bedeutet, dass die Konvertierung in ein (assoziatives) Array erzwungen wird, False bedeutet, dass die Konvertierung standardmäßig in Objektformdaten erfolgt.

Zurück zum Beispiel in diesem Artikel.

Da die zurückgesendeten Daten nicht mehr im JSON-Format vorliegen, liegt ein Problem mit dataType vor.

dataType weist den Browser an, das übertragene Datenformat zu überprüfen. Wenn es nicht geschrieben wird, prüft der Browser das Datenformat nicht. Wenn es geschrieben wird, wird es überprüft und muss den Formatanforderungen entsprechen. Da es in diesem Beispiel im JSON-Format geschrieben wurde, das zurückgegebene Format jedoch nicht im JSON-Format war, ging der Browser davon aus, dass während des Übertragungsprozesses ein Fehler aufgetreten ist, und gab daher „Fehler“ anstelle von „Erfolg“ ein.

Der beste Weg zu diesem Zeitpunkt besteht darin, den PHP-Code zu ändern, den Inhalt von Echo in ein Array zu ändern und die Array-Buchstabenform zu verwenden, um die Gesamtdaten zur Übertragung im JSON-Format (json_encode) zu organisieren. um Fehler zu vermeiden.

Natürlich können Sie auch eine andere Methode verwenden, die einer Cheat-Methode ähnelt. Kommentieren Sie den Datentyp direkt aus (oder schreiben Sie ihn nicht), sodass der Browser die Form der Daten nicht überprüft sondern basiert eher auf der Form der Daten. Intelligentes Urteilen ähnelt dem Durchwursteln.

Das Folgende ist die W3school-Erklärung von dataType:

Zusammenfassung einiger Fehler bei der Verwendung von Ajax in PHP


Es ist erwähnenswert, dass im Backend PHP-Datei Nach mehreren Echo-Ausgaben werden die Daten tatsächlich zusammen zurückgegeben. Nachdem die Änderung korrekt ist, handelt es sich bei den vom Front-End erhaltenen Daten um Daten in Form von zwei Daten, die zu einer Zeichenfolge zusammengefasst sind. Die in diesem Beispiel erhaltenen Daten sind 12zh.

Natürlich gibt es viele Details. Beispielsweise kann das PHP-Backend nur echo oder die() verwenden, und return kann nicht verwendet werden. Dies liegt daran, dass return nur zum Zurückgeben von Daten auf dem Server verwendet wird Seite und echo Es dient zum Drucken von Daten, zum Drucken der Daten vom Server und zum Übergeben an das Front-End. Die Rückgabe kann nur auf der Serverseite oder eine einzelne Rückgabe auf dem Frontend erfolgen. Ganz zu schweigen von der Leistungsfähigkeit von die(): Es beendet das Back-End-PHP-Programm direkt und gibt Daten zurück.

In $,ajax({}); ist jede Zeile ein Parameter, und die Parameter werden durch Kommas getrennt.

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP-FehlerVerwendung der Handlerfunktion register_shutdown_function

Detaillierte Erklärung der PHP-Fehlerstufe

Eine kurze Analyse der PHP-Fehlerbehandlung, des automatischen Ladens, des Stapelspeichers und des Betriebsmodus

Das obige ist der detaillierte Inhalt vonZusammenfassung einiger Fehler bei der Verwendung von Ajax in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage