Maison  >  Article  >  développement back-end  >  Le code PHP implémente le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxinyiyan

Le code PHP implémente le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxinyiyan

王林
王林original
2023-08-12 12:09:171614parcourir

Le code PHP implémente le traitement inter-domaines CORS des résultats de réponse de linterface API Baidu Wenxinyiyan

Le code PHP implémente le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxinyiyan

Dans le développement Web, le partage de ressources d'origine croisée (Cross-Origin Resource Sharing) est un problème courant. Lorsque nous demandons des ressources sous un nom de domaine à partir d'une page Web sous un autre nom de domaine, si le traitement inter-domaines n'est pas effectué, le navigateur bloquera la demande par défaut. Dans le développement réel, nous devons souvent appeler des interfaces tierces dans la page frontale pour obtenir des données. Cet article explique comment utiliser le code PHP pour implémenter le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxinyiyan.

L'interface API Baidu Wen Xin Yi Yan est une interface qui fournit des phrases aléatoires. Nous pouvons obtenir une phrase aléatoire Wen Xin Yi Yan en envoyant une requête GET à l'interface. Tout d'abord, nous devons utiliser XMLHttpRequest ou Fetch API dans la page frontale pour envoyer une requête GET à l'interface API Baidu Wenxin Yiyan. En raison de la politique de même origine du navigateur, nous devons effectuer un traitement inter-domaines CORS côté serveur.

Ce qui suit est un exemple de code PHP simple qui montre comment implémenter le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxin Yiyan :

<?php
// 百度文心一言 API 接口地址
$url = 'https://v1.hitokoto.cn/';

// 使用 CURL 发送 GET 请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 设置请求头中的 Origin 字段,用于解决 CORS 跨域问题
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Origin: https://your-domain.com', // 将 your-domain.com 替换为你实际的域名
]);

$response = curl_exec($ch);
curl_close($ch);

// 设置响应头中的 Access-Control-Allow-Origin 字段,允许跨域访问
header('Access-Control-Allow-Origin: https://your-domain.com');
// 其他 CORS 相关响应头可以根据需要进行设置

// 输出 API 响应结果
echo $response;
?>

Dans le code ci-dessus, nous définissons d'abord l'API Baidu Wenxin Yiyan L'adresse de l'interface, puis utilisez CURL pour envoyer une requête GET à l'interface. Le champ Origine est défini dans l'en-tête de la requête et sa valeur est le nom de domaine où se trouve notre page frontale. Ensuite, nous lisons les données de la réponse de l'API et les extrayons. Enfin, définissez le champ Access-Control-Allow-Origin dans l'en-tête de réponse sur le nom de domaine de notre page frontale pour autoriser l'accès entre domaines.

Il est à noter que dans le code ci-dessus, nous définissons les valeurs du champ Origin et du champ Access-Control-Allow-Origin sur le nom de domaine où se trouve notre page front-end. Vous devez remplacer « https://votre-domaine.com » dans le code par votre nom de domaine réel.

Grâce à l'exemple de code ci-dessus, nous pouvons implémenter le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxin Yiyan côté serveur PHP. De cette façon, nous pouvons appeler cette interface dans la page front-end pour obtenir les données de phrases aléatoires. Chacun peut apporter les modifications et extensions correspondantes en fonction de ses besoins réels.

Résumé :
Cet article montre comment implémenter le traitement inter-domaines CORS des résultats de réponse de l'interface API Baidu Wenxin Yiyan à travers des exemples de code PHP. Dans le développement réel, pour les problèmes inter-domaines, nous devons les gérer côté serveur pour garantir que la page frontale peut normalement obtenir des données de l'interface tierce. J'espère que cet article pourra aider tout le monde à résoudre le problème des requêtes inter-domaines.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn