2016-01-13 2 views
2

Я пытаюсь включить CORS в моем приложении Flask, но, похоже, я всегда могу получить доступ к своим URL-адресам из браузера, независимо от того, что я ввел в исходное.Flocks 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 
+0

Вы хотите сказать, что пытаетесь получить к нему доступ с помощью URL-адреса, кроме www.examplesite.com? – Sam

+0

Yup, и он работает. кажется, что моя конфигурация CORS не влияет –

+0

Можете ли вы точно сказать, что вы делаете? Какова конечная точка, к которой вы обращаетесь, и из какого домена и как? – Sam

ответ

0

У вас есть две проблемы:

  1. Ключ предоставляется ресурсы должны быть действительное регулярное выражение Python, согласно Flask-CORS documentation - использовать /.* вместо /*, чтобы соответствовать что-нибудь под корень / , а не любой путь, который состоит только из косых черт (что и означает /*).
  2. Возвращаемое начало должно быть полностью квалифицированным URI, соответствующим синтаксису, описанному в RFC 6454 Section 7.1, согласно the W3C's specification for CORS. www.example.com не является полностью квалифицированным URI, поскольку он не имеет схемы. Используйте вместо этого https://www.example.com или http://www.example.com. В качестве альтернативы вы можете использовать регулярное выражение, чтобы сообщить Flask-CORS, чтобы они совпадали только с одной записью в origins.
+0

Я сделал то, что вы мне сказали, все равно не имеет никакого эффекта. Это похоже на то, что приложение вообще не видит CORS и идет по умолчанию. –