Maison >développement back-end >Tutoriel Python >Explication graphique et textuelle détaillée sur la façon de gérer les problèmes d'erreur de requête inter-domaines dans le framework de bouteilles de Python
Cet article présente principalement comment résoudre le problème du rapport d'erreurs de requêtes inter-domaines dans le flaconframework de python Les amis qui en ont besoin peuvent se référer à
<.>utilisation de python Lors du développement du framework de bouteilles, lorsque le front-end utilise ajax pour l'accès inter-domaines, le codejs ne parvient toujours pas à saisir le succès, mais entre une erreur et le statut renvoyé vaut 200. Il est normal d'accéder à l'url directement dans le navigateur. Après avoir appuyé sur F12 dans le navigateur, vous trouverez le message d'erreur suivant
XMLHttpRequest ne peut pas charger http://192.168.0.118 : 8081/get_mobile_number/? id=1. Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée. L'origine 'null' n'est donc pas autorisée.
Si vous recherchez des erreurs via les moteurs de recherche, vous constaterez que presque toutes les réponses que vous trouvez sont des problèmes inter-domaines. Il vous suffit d'ajouter ce qui suit au code du fichier principal, disent de nombreuses solutions sur les sites Web étrangers. ceci@hook('after_request') def enable_cors(): response.headers['Access-Control-Allow-Origin'] = '*'En fait, après avoir ajouté la solution trouvée, une erreur s'est toujours produite en regardant l'en-tête http affiché par le navigateur, nous n'avons pas vu le Access-Control-Allow-Origin:* nous. vient d'être ajouté, comme indiqué ci-dessous :
Via DEBUG, entrez le code source de la bouteille pour afficher J'ai testé ce problème dans le framework bouteille correspondant à python2 et python3 Ce problème existe, nous l'avons changé en :
class HTTPResponse(Response, BottleException): def init(self, body='', status=None, headers=None, **more_headers): super(HTTPResponse, self).init(body, status, headers, **more_headers) def apply(self, response): response._status_code = self._status_code response._status_line = self._status_line if self._headers: if response._headers: response._headers.update(self._headers) else: response._headers = self._headers response._cookies = self._cookies response.body = self.body
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!