Maison >développement back-end >Tutoriel Python >Comment résoudre les problèmes CORS dans les applications Flask : pourquoi les en-têtes « Access-Control-Allow-Origin » sont-ils nécessaires ?

Comment résoudre les problèmes CORS dans les applications Flask : pourquoi les en-têtes « Access-Control-Allow-Origin » sont-ils nécessaires ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 01:42:01951parcourir

How to  Solve CORS Issues in Flask Applications: Why

Comment résoudre les problèmes CORS dans les applications Flask

Lors des requêtes cross-origin (CORS), il est courant de rencontrer des erreurs dues à des En-têtes « Access-Control-Allow-Origin ». Dans ce cas, la demande est rejetée car le serveur n'autorise pas explicitement les demandes provenant de l'origine du client.

Pour résoudre ce problème, vous pouvez activer CORS sur l'application Flask à l'aide du package 'flask-cors'. Voici comment procéder :

  1. Installer flask-cors

    <code class="bash">pip install -U flask-cors</code>
  2. Importer le Flask- Module CORS

    <code class="python">from flask_cors import CORS, cross_origin</code>
  3. Configurer CORS

    <code class="python">app = Flask(__name__)
    cors = CORS(app)
    app.config['CORS_HEADERS'] = 'Content-Type'</code>
  4. Décorer les routes compatibles CORS

    <code class="python">@app.route("/")
    @cross_origin()
    def helloWorld():
      return "Hello, cross-origin-world!"</code>

Dans votre cas spécifique, vous pouvez modifier votre code comme suit :

Code Client :

<code class="javascript">// Only change the crossDomain option to false
$.ajax({
  type: 'POST',
  url: 'http://...',
  data: "name=3&amp;email=3&amp;phone=3&amp;description=3",
  crossDomain: false,
  success: function(msg) {
      alert(msg);
  }
});</code>

Code du serveur :

<code class="python">from flask import Flask, request
from flask.ext.mandrill import Mandrill
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app)</code>

Remarque : Assurez-vous de modifier l'option crossDomain sur false dans le code JavaScript pour empêcher les requêtes inter-domaines . Assurez-vous également que la configuration de votre serveur autorise les requêtes provenant de l'origine spécifiée (http://...).

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