对于我的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
它也是高度可配置的,如文档中所述。