Maison > Questions et réponses > le corps du texte
Par exemple, sur le même serveur, le répertoire principal du site Web est lié à www.domain.com et le backend du site Web est lié à www.domain.com:8080.
Même si les ports sont différents, cela sera considéré comme cross-domain, non ? Je pense que cette situation est un peu injuste entre les domaines, et que le POST n'est pas pratique entre les domaines, n'est-ce pas ?
Avez-vous de bons moyens de résoudre ce problème ? Pouvez-vous utiliser certains paramètres pour empêcher les domaines croisés entre le site Web et le backend ? Cette méthode de séparation du site Web et du backend sera tôt ou tard confrontée à des problèmes inter-domaines, n'est-ce pas ?
PHPz2017-05-16 17:12:52
Il existe de nombreuses solutions intersites, les plus courantes sont JSONP, le transfert de proxy et la nouvelle fonctionnalité Allow Origin de HTLM5 qui permet l'accès intersites.
Dans votre cas, il est recommandé de configurer un proxy dans Ngingx du site Web et de le transmettre au backend du site Web. La configuration est probablement la suivante :
upstream backend {
server backend1.example.com:8080;
}
server {
location /api {
proxy_pass http://backend;
}
}
Sur la page front-end, l'adresse accessible via ajax est : http://www.example.com/api/xxx
高洛峰2017-05-16 17:12:52
Différents ports sont des sites intrinsèquement différents, et les sites sont inter-domaines ! En séparant le front-end et le back-end, le site Web peut être plus sécurisé et peut être géré séparément. Je ne pense pas qu'il soit nécessaire d'utiliser le front-end pour effectuer des requêtes inter-domaines vers le back-end. exposez le back-end, et la conception du programme ne doit pas récupérer les données entre les domaines via la barre front-end ! À moins que votre base de données ne soit une base de données de fichiers telle qu'Access ou SQLite, il s'agit alors d'un problème de conception. La demande de données ne nécessite qu'une connexion de données. Pas besoin de traverser les domaines.