Add cors support - needed for UI

This commit is contained in:
Matthias 2020-05-16 07:07:24 +02:00
parent 788d75572b
commit 61f6acb5c9
4 changed files with 5 additions and 1 deletions

View File

@ -7,6 +7,7 @@ from typing import Any, Callable, Dict
from arrow import Arrow from arrow import Arrow
from flask import Flask, jsonify, request from flask import Flask, jsonify, request
from flask.json import JSONEncoder from flask.json import JSONEncoder
from flask_cors import CORS
from flask_jwt_extended import (JWTManager, create_access_token, from flask_jwt_extended import (JWTManager, create_access_token,
create_refresh_token, get_jwt_identity, create_refresh_token, get_jwt_identity,
jwt_refresh_token_required, jwt_refresh_token_required,
@ -88,6 +89,7 @@ class ApiServer(RPC):
self._config = freqtrade.config self._config = freqtrade.config
self.app = Flask(__name__) self.app = Flask(__name__)
self._cors = CORS(self.app, resources={r"/api/*": {"origins": "*"}})
# Setup the Flask-JWT-Extended extension # Setup the Flask-JWT-Extended extension
self.app.config['JWT_SECRET_KEY'] = self._config['api_server'].get( self.app.config['JWT_SECRET_KEY'] = self._config['api_server'].get(

View File

@ -26,6 +26,7 @@ sdnotify==0.3.2
# Api server # Api server
flask==1.1.2 flask==1.1.2
flask-jwt-extended==3.24.1 flask-jwt-extended==3.24.1
flask-cors==3.0.8
# Support for colorized terminal output # Support for colorized terminal output
colorama==0.4.3 colorama==0.4.3

View File

@ -16,7 +16,7 @@ if readme_file.is_file():
readme_long = (Path(__file__).parent / "README.md").read_text() readme_long = (Path(__file__).parent / "README.md").read_text()
# Requirements used for submodules # Requirements used for submodules
api = ['flask', 'flask-jwt-extended'] api = ['flask', 'flask-jwt-extended', 'flask-cors']
plot = ['plotly>=4.0'] plot = ['plotly>=4.0']
hyperopt = [ hyperopt = [
'scipy', 'scipy',

View File

@ -49,6 +49,7 @@ def client_get(client, url):
def assert_response(response, expected_code=200): def assert_response(response, expected_code=200):
assert response.status_code == expected_code assert response.status_code == expected_code
assert response.content_type == "application/json" assert response.content_type == "application/json"
assert ('Access-Control-Allow-Origin', '*') in response.headers._list
def test_api_not_found(botclient): def test_api_not_found(botclient):