使用BasicAuth时,Flask阻止了跨域请求

时间:2019-01-07 16:33:04

标签: python flask-login flask-cors

我有一个Flask应用程序,其中包含各种图像,这些图像显示了由K-Means算法构建的一些聚类。 用户应该能够选择一个或多个图像,然后将其重定向到可以进一步评估群集的网页。 在添加基本访问身份验证之前,该应用程序按预期工作。

具体地说,我的(简化的)python脚本如下:

from flask import Flask, render_template, request, redirect, url_for 
from flask_cors import CORS
from flask_basicauth import BasicAuth

app=Flask(__name__)

app.config['BASIC_AUTH_USERNAME'] = os.environ['AUTH_USERNAME']
app.config['BASIC_AUTH_PASSWORD'] = os.environ['AUTH_PASSWORD']
app.config['BASIC_AUTH_FORCE']= True
basic_auth=BasicAuth(app)

CORS(app)


@app.route('/')
def show_index():
    images=os.listdir(app.root_path+"/static/img/")
    return render_template("cluster_images.html", cluster_images = images)

@app.route("/filter", methods=["POST", "GET"])
def filter():
if request.method=="POST":
    sel=request.get_json()

#Do some operations with sel

当我尝试从由“ btn1”完成的主路由重定向到/ filter路由时,出现问题。 下面显示了“ cluster_images.html”中的函数,该函数在触发btn1时会注意http请求

$("document").ready(function() {
    $("#btn1").click(function(){
$.ajax({
    type: 'POST',
    beforeSend: function(){
        $('.loader')},
        contentType: 'application/json',
        url:  "http://localhost:5000/filter",
        dataType : 'html',
        data : JSON.stringify(images), success: function(){window.location.href = "http://localhost:5000/filter"}
})
})
})

当我按下按钮时,出现以下错误:

跨域请求被阻止:“同源起源”策略禁止读取http://localhost:5000/filter处的远程资源。 (原因:CORS的预检渠道未成功)。[了解更多]

0 个答案:

没有答案