Cinq solutions pour les sites Web multi-domaines
Étant donné que le navigateur utilise la politique de même origine, une requête inter-domaines est générée. Une page Web demande des ressources à une autre page Web avec un nom de domaine différent/un protocole différent/un port différent. Il s'agit d'un inter-domaine. Cet article propose 5 façons de résoudre le problème du cross-domain du site Web. Les amis intéressés peuvent y jeter un œil.
1. Qu'est-ce que le saute-mouton ?
- Une page Web demande des ressources à une autre page Web avec un nom de domaine différent/un protocole différent/un port différent. Il s'agit d'un inter-domaine.
- Raison inter-domaines : sur le site Web actuel de demande de nom de domaine, l'envoi d'autres noms de domaine via des requêtes ajax n'est pas autorisé par défaut.
2. Pourquoi les requêtes cross-domaines sont-elles générées ?
Parce que le navigateur utilise la politique de même origine
3. Qu'est-ce que la politique de même origine ?
- La politique de même origine est une politique de sécurité bien connue proposée par Netscape. Tous les navigateurs prenant en charge JavaScript utilisent désormais cette politique. La politique de même origine est la fonction de sécurité essentielle et la plus élémentaire du navigateur. Si la politique de même origine est manquante, les fonctions normales du navigateur peuvent être affectées. On peut dire que le Web est construit sur la base de la politique de même origine, et que le navigateur n'est qu'une implémentation de cette politique.
4. Pourquoi les navigateurs utilisent-ils la même politique d'origine ?
-
vise à assurer la sécurité des informations des utilisateurs et à empêcher les sites Web malveillants de voler des données. Si les pages Web ne répondent pas aux mêmes exigences d'origine, elles ne pourront pas :
- 1. Cookies partagés, LocalStorage, IndexDB
- 2. >
3. Les requêtes AJAX ne peuvent pas être envoyées -
<script></script> <img/> <iframe/> <link/> <video/> <audio/>
avec un navigateur, et lorsque le navigateur exécute le script JavaScript, il constate que le script envoie une requête au nom de domaine
. À ce moment, le navigateur signalera une erreur. une erreur inter-domaines.http://baidu.com
Il existe cinq solutions : http://cloud.baidu.com
Lorsque nous demandons normalement des données JSON, le serveur renvoie est une chaîne de données de type JSON, et lorsque l'on utilise le mode JSONP pour demander des données, le serveur renvoie un code JavaScript exécutable. Parce que le principe inter-domaines de jsonp est de charger dynamiquement le src du script, nous ne pouvons transmettre les paramètres que via l'url, donc le type type de jsonp ne peut être obtenu qu'exemple :
- L'ensemble du processus de demande de données en mode JSONP : le client envoie une requête et spécifie un nom de fonction exécutable (ici, jQuery effectue le processus d'encapsulation, génère automatiquement une fonction de rappel pour vous et extrait les données pour la méthode d'attribut de réussite ) appel, au lieu de passer un handle de rappel), le serveur accepte le nom de la fonction backfunc, puis envoie les données sous forme de paramètres réels
$.ajax({ url: 'http://192.168.1.114/yii/demos/test.php', //不同的域 type: 'GET', // jsonp模式只有GET 是合法的 data: { 'action': 'aaron' }, dataType: 'jsonp', // 数据类型 jsonp: 'backfunc', // 指定回调函数名,与服务器端接收的一致,并回传回来 })
- (dans le code source jquery, l'implémentation de jsonp est Ajoutez dynamiquement la balise
- pour appeler le script js fourni par le serveur. jquery chargera une fonction globale dans l'objet window Lorsque le code
est inséré, la fonction sera exécutée. > seront supprimées en même temps. Les requêtes non cross-domaines ont également été optimisées. Si la requête est sous le même nom de domaine, elle fonctionnera comme une requête Ajax normale) <script>
2. Transfert de demande HTTP en arrière-plan<🎜.><script>
<script>
Utilisez le transfert HttpClinet pour le transfert (cette méthode n'est pas recommandée pour des exemples simples)
try { HttpClient client = HttpClients.createDefault(); //client对象 HttpGet get = new HttpGet("http://localhost:8080/test"); //创建get请求 CloseableHttpResponse response = httpClient.execute(get); //执行get请求 String mes = EntityUtils.toString(response.getEntity()); //将返回体的信息转换为字符串 System.out.println(mes); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
3. Configurez les Cors de même origine en arrière-plan ( recommandé)
- Pour une configuration inter-domaines sur SpringBoot2.0, utilisez la configuration de code suivante pour résoudre parfaitement vos problèmes de requêtes inter-domaines front-end et back-end
Pour la configuration inter-domaines sur SpringBoot2.0, utilisez la configuration de code suivante pour la résoudre parfaitement. Résolvez vos problèmes de requêtes inter-domaines front-end et back-end
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; /** * 实现基本的跨域请求 * @author linhongcun * */ @Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); final CorsConfiguration corsConfiguration = new CorsConfiguration(); /*是否允许请求带有验证信息*/ corsConfiguration.setAllowCredentials(true); /*允许访问的客户端域名*/ corsConfiguration.addAllowedOrigin("*"); /*允许服务端访问的客户端请求头*/ corsConfiguration.addAllowedHeader("*"); /*允许访问的方法名,GET POST等*/ corsConfiguration.addAllowedMethod("*"); urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(urlBasedCorsConfigurationSource); } }
- 4 Utilisez la passerelle SpringCloud
- <. 🎜>
5、使用nginx做转发
- 现在有两个网站想互相访问接口 在
http://a.a.com:81/A
中想访问http://b.b.com:81/B
那么进行如下配置即可 - 然后通过访问
www.my.com/A
里面即可访问www.my.com/B
server { listen 80; server_name www.my.com; location /A { proxy_pass http://a.a.com:81/A; index index.html index.htm; } location /B { proxy_pass http://b.b.com:81/B; index index.html index.htm; } }
- 如果是两个端口想互相访问接口 在
http://b.b.com:80/Api
中想访问http://b.b.com:81/Api
那么进行如下配置即可 - 使用nginx转发机制就可以完成跨域问题
server { listen 80; server_name b.b.com; location /Api { proxy_pass http://b.b.com:81/Api; index index.html index.htm; } }
希望本篇文章对你有所帮助。
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

Comprendre la signification du code d'état HTTP 301 : scénarios d'application courants de redirection de pages Web Avec le développement rapide d'Internet, les exigences des utilisateurs en matière d'interaction avec les pages Web sont de plus en plus élevées. Dans le domaine de la conception Web, la redirection de pages Web est une technologie courante et importante, mise en œuvre via le code d'état HTTP 301. Cet article explorera la signification du code d'état HTTP 301 et les scénarios d'application courants dans la redirection de pages Web. Le code d'état HTTP 301 fait référence à une redirection permanente (PermanentRedirect). Lorsque le serveur reçoit le message du client

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

Comment implémenter le streaming HTTP en C++ ? Créez un socket de flux SSL à l'aide de Boost.Asio et de la bibliothèque client asiohttps. Connectez-vous au serveur et envoyez une requête HTTP. Recevez les en-têtes de réponse HTTP et imprimez-les. Reçoit le corps de la réponse HTTP et l'imprime.

La requête HTTP expire et le serveur renvoie souvent le code d'état 504GatewayTimeout. Ce code d'état indique que lorsque le serveur exécute une requête, il ne parvient toujours pas à obtenir les ressources requises pour la requête ou à terminer le traitement de la requête après un certain temps. Il s'agit d'un code d'état de la série 5xx, qui indique que le serveur a rencontré un problème temporaire ou une surcharge, entraînant l'incapacité de traiter correctement la demande du client. Dans le protocole HTTP, divers codes d'état ont des significations et des utilisations spécifiques, et le code d'état 504 est utilisé pour indiquer les problèmes d'expiration du délai de demande. chez le client
