AJAX CORS error with Python Flask



对于我的Python Flask应用程序,我想从我的Javascript中执行以下操作。

<script>
    $.ajax({
        url: "http://localhost:5000/card_clf",
        type: "POST",
        contentType: "application/json",
        data: JSON.stringify({"line": "가나다라.tstc"}),
        success: function(res) {
            document.getElementById("div01").innerHTML = res;
        }
    });
</script>

但是,我收到一个错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5000/card_clf. (Reason: CORS header 'Access-Control-Allow-Origin' missing).

我通过将以下代码中的"@app.after_request"部分添加到我的Python Flask应用程序中来解决此问题。

from flask import Flask, request

app = Flask(__name__)

@app.route('/card_clf', methods=["POST"])
def greet():
    ...
    return response

@app.after_request
def add_headers(response):
    response.headers.add('Access-Control-Allow-Origin', '*')
    response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
    return response

您可以安装 flask-cors 或使用 flask 主页上的代码段。
烧瓶的基本用法非常简单:

from flask import Flask
from flask.ext.cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/card_clf', methods=["POST"])
def greet():
    ...
    return response

它也是高度可配置的,如文档中所述。

最新更新