Heim >Backend-Entwicklung >PHP-Tutorial >Wie die API JSONP und Cross-Site-Anfragen in PHP verarbeitet

Wie die API JSONP und Cross-Site-Anfragen in PHP verarbeitet

PHPz
PHPzOriginal
2023-06-17 10:37:091335Durchsuche

Da immer mehr Webanwendungen anfangen, Cross-Site-Anfragen und JSONP-Technologie zu unterstützen, müssen API-Designer in PHP überlegen, wie sie mit diesen Anfragen umgehen sollen. In diesem Artikel erfahren Sie, wie Sie mit JSONP und Cross-Site-Anfragen in PHP umgehen.

Werfen wir zunächst einen Blick auf JSONP. JSONP (JSON with Padding) ist eine Technologie, die domänenübergreifende Anfragen nach Daten zwischen Clients und Servern ermöglicht. Dazu wird JavaScript-Code verwendet, um dynamisch ein 3f1c4e4b6b16bbbd69b2ee476dc4f83a-Tag zu erstellen, dessen src-Attribut eine URL ist, die auf eine API verweist, die eine JSONP-Antwort zurückgibt.

Um JSONP zu unterstützen, müssen wir der API etwas Code hinzufügen. Zuerst müssen wir prüfen, ob die API-Anfrage einen „Callback“-Parameter enthält, der den Namen der Callback-Funktion angibt, die auf dem Client ausgeführt werden soll. Wenn dieser Parameter vorhanden ist, müssen wir die Rückruffunktion in der Antwort verwenden, um die JSON-Antwort zu umschließen. Auf diese Weise kann clientseitiger JavaScript-Code die Antwort problemlos lesen und verarbeiten, ohne sich über domänenübergreifende Einschränkungen Gedanken machen zu müssen.

Das Folgende ist ein PHP-Beispielcode, der zeigt, wie JSONP unterstützt wird:

<?php
$data = array('name' => 'John', 'age' => 30);
$json = json_encode($data);

if(isset($_GET['callback'])){
    echo $_GET['callback'] . '(' . $json . ')';
} else {
    echo $json;
}
?>

Wenn die API-Anfrage im obigen Beispiel den Parameter „callback“ enthält, wird eine JSONP-Antwort zurückgegeben.

Schauen wir uns nun an, wie man mit standortübergreifenden Anfragen umgeht. Cross-Origin Resource Sharing (CORS) ist eine Technologie, die domänenübergreifende Anforderungen zwischen dem Client-Browser und dem Server ermöglicht. Durch die Verwendung von CORS können wir clientseitigen JavaScript-Code Daten von der API einer anderen Domäne abrufen lassen, ohne dass ein Proxyserver oder eine andere Lösung erforderlich ist.

Das Aktivieren von CORS in PHP ist einfach. Wir müssen lediglich einige Informationen zum Antwortheader hinzufügen. Zum Beispiel:

<?php
header("Access-Control-Allow-Origin: *"); //允许所有域名
header("Access-Control-Allow-Methods: GET, POST"); //允许的HTTP方法
header("Access-Control-Allow-Headers: Content-Type"); //允许客户端发送的Header
?>

Im obigen Beispiel aktivieren wir CORS, indem wir „Access-Control-Allow-Origin“, „Access-Control-Allow-Methods“ und „Access-Control-Allow-Headers“ im Antwortheader hinzufügen. Auf diese Weise kann der Client Daten von jedem Domänennamen abrufen, während die HTTP-Methode und der Header ebenfalls eingeschränkt sind.

Zusammenfassend müssen API-Designer in PHP darüber nachdenken, wie sie JSONP und CORS unterstützen, damit clientseitiger JavaScript-Code Daten von anderen Domänennamen abrufen kann. Sowohl JSONP als auch CORS bieten eine sichere und zuverlässige standortübergreifende Anforderungsmethode und können Client-Code flexibler sowie einfacher zu entwickeln und zu warten machen.

Das obige ist der detaillierte Inhalt vonWie die API JSONP und Cross-Site-Anfragen in PHP verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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