


Lösen Sie das Problem der Verarbeitung von Ajax-Anfragen durch PHP und domänenübergreifende Ajax-Probleme
PHP bestimmt, ob es sich um eine Ajax-Anfrage handelt. Wir wissen, dass Sie beim Senden einer Ajax-Anfrage benutzerdefinierte Header-Informationen über das XMLHttpRequest-Objekt im JQuery-Framework erstellen können Webinhalte über die Methoden $.ajax, $.get oder $.post übergeben, wird ein HTTP_X_REQUESTED_WITH-Parameter an den Server übergeben. In PHP wird auf Header-Ebene beurteilt, ob es sich um eine Ajax-Anfrage handelt, und die entsprechende Beurteilung erfolgt basierend auf . Unter normalen Umständen ist $_SERVERstandardmäßig
. Es kann auch mit angepasst und erstellt werden. $_SERVER['HTTP_X_REQUESTED_WITH']
['HTTP_X_REQUESTED_WITH']
XMLHttpRequest,$_SERVER['HTTP_X_REQUESTED_WITH']
Verwandte Lernempfehlungen: XMLHttpRequest.setRequestHeader(name,value)
php-Programmierung
Beispiel: Die Front-End-Seite sendet eine gewöhnliche Ajax-Anfrage an die Back-End-Test.php.
Der Server test.php kann feststellen, ob es sich bei der Anfrage um eine asynchrone Ajax-Anfrage handelt, und dann entsprechend den Geschäftsanforderungen reagieren.$.ajax({ type: "GET", url: 'test.php', success: function(data) { console.log(data); } });Nach dem Login kopieren
Der folgende Code dient zur einfachen Überprüfung, ob der Server test.php eine Ajax-Anfrage ist:
function isAjax() { return @$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ? true : false; } if (isAjax()) { echo 'Ajax Request Success.'; } else { echo 'No.'; }
Ajax initiiert eine domänenübergreifende JSONP-Anfrage
Wir können domänenübergreifende Ajax-Anfragen über die JSONP-Methode von jQuery implementieren , serverseitiges PHP Es muss auch eine entsprechende Verarbeitung durchgeführt werden, was bedeutet, dass PHP Daten in einem bestimmten Format mit der Front-End-Seite anfordern und zurückgeben muss. Beispiel: Die Front-End-Seite initiiert eine JSONP-Anfrage:
$.ajax({ type: "get", data: "random="+Math.random(), url: "http://demo.jb51.net/phpajax/jsonp.php", dataType: "jsonp", jsonp: "callback", success: function(data) { console.log(data); }, error: function() { console.log('Request Error.'); } });
Wir werden feststellen, dass die Ajax-Anfrageparameter dataType: „jsonp“ und jsonp: „callback“ enthalten, was angibt, dass ich JSONP anfordern möchte, und Es erfolgt ein Rückruf. Natürlich können wir die Rückruffunktion auch anpassen, z. B. jsonpCallback: „success_jsonpCallback“
Sie kann auch einfach geschrieben werden als:
jQuery.getJSON('http://demo.jb51.net/phpajax/jsonp.php?callback=?",{ random: Math.random() }, function(data){ console.log(data); });
Der PHP-Back-End-Servicecode kann so geschrieben werden (achten Sie auf das Format von die Ausgaberückgabe):
$data = array( 'rand' => $_GET['random'], 'msg' => 'Success' ); echo $_GET['callback'].'('.json_encode($data).')';
Ajax Cross Domain Request: CORS
CORS, auch bekannt als Cross-Domain Resource Sharing, der vollständige englische Name ist Cross-Origin Resource Sharing. Angenommen, wir möchten Ajax verwenden, um Daten von der Seite von a.com zur Seite von b.com anzufordern. Aufgrund der Same-Origin-Richtlinie ist diese Art von Anfrage normalerweise nicht zulässig, und der Browser gibt auch ein „ zurück. Fehler „Quelleninkongruenz“. Daher der Begriff „domänenübergreifend“. Aber wir haben auch eine Lösung. Wir können den Header-Informationen der Seite auf b.com eine Codezeile hinzufügen: header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Origin: https://www.jb51.net");
Beispiel: Domänenübergreifende Anforderungsdaten über CORS
$.ajax({ type: "get", data: "random="+Math.random(), url: "http://demo.jb51.net/phpajax/ajax.php", dataType: "json", success: function(data) { console.log(data); $("#result_3").html(data.msg+':'+data.rand); }, error: function() { $("#result_3").html('Request Error.'); } });
Wir fügen ajax.php unter einem anderen Website-Domänennamen den folgenden Code hinzu:
header("Access-Control-Allow-Origin: https://www.jb51.net"); $data = array( 'rand' => $_GET['random'], 'msg' => 'Success' ); echo json_encode($data);
Dies realisiert die Initiierung von der Seite www.jb51.net. Stellen Sie eine domänenübergreifende asynchrone Anfrage an den Domänennamenpfad demo.jb51.net/phpajax/ajax.php und erhalten Sie eine Antwort.
Empfehlungen für entsprechende Videos:PHP-Programmierung vom Einstieg bis zum Master
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem der Verarbeitung von Ajax-Anfragen durch PHP und domänenübergreifende Ajax-Probleme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
