烧瓶 Cors 不工作

Posted

技术标签:

【中文标题】烧瓶 Cors 不工作【英文标题】:Flask Cors isn't working 【发布时间】:2016-04-18 16:03:26 【问题描述】:

我正在尝试在我的 Flask 应用程序中启用 CORS,但似乎我总是可以从浏览器访问我的网址,无论我在源中放置什么。

我不知道我做错了什么。这是我的代码

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app, resources=r'/*': 'origins': 'www.examplesite.com')

@app.route('/reports', methods=['GET', 'POST'])
def index(id=None):
    return jsonify(success=True), 200 

【问题讨论】:

您的意思是您尝试从 www.examplesite.com 以外的网址访问它? 是的,它有效。看来我的CORS配置没有效果 你能准确地说出你在做什么吗?您正在访问的端点是什么,从哪个域以及如何访问? 我正在尝试仅从特定域访问 API 以增加一些安全性。但似乎不起作用。我可以毫无问题地在本地访问它。我部署了它,然后从我的浏览器再次尝试,它也有效。似乎 CORS 恢复为“*”,这是默认值。 【参考方案1】:

你有两个问题:

    提供给资源的键必须是有效的 Python 正则表达式,根据 Flask-CORS documentation - 使用 /.* 而不是 /* 来匹配根 / 下的任何内容,而不是任何仅包含斜杠的路径(这就是/* 的意思)。 根据the W3C's specification for CORS,返回的原点应该是与RFC 6454 Section 7.1 中描述的语法相匹配的完全限定URI。 www.example.com 不是完全限定的 URI,因为它没有方案。请改用https://www.example.comhttp://www.example.com。或者,您可以使用正则表达式告诉 Flask-CORS 仅匹配 origins 中的一个条目。

【讨论】:

我按照你说的做了,还是没有效果。就像应用根本看不到 CORS 并使用默认值一样。 同样的问题

以上是关于烧瓶 Cors 不工作的主要内容,如果未能解决你的问题,请参考以下文章

烧瓶 socketio CORS

Python 烧瓶、apache 和 mod_wsgi 应用程序不工作

烧瓶套接字 io 不工作(Windows 7 和 10)anaconda 和 python 3.7

CORS 的问题。烧瓶 <-> AngularJS

CORS 配置 Flask、Angular 和 NGINX

使用 Socket.IO 反应和烧瓶 - CORS 问题