не могу правильно добавить поддержку cors на сгенерированный swagger флеш-сервер - PullRequest
0 голосов
/ 12 апреля 2019

Я создал сервер python-flask из онлайн-редактора swagger. Я добавил CORS на сервер:

#!/usr/bin/env python3

import connexion

from swagger_server import encoder
from flask_cors import CORS

def main():
    app = connexion.App(__name__, specification_dir='./swagger/')
    app.app.json_encoder = encoder.JSONEncoder
    app.add_api('swagger.yaml', arguments={'title': 'Example API'})
    app.run(port=8080, ssl_context='adhoc')
    cors = CORS(app.app, resources={r"/v1/*": {"origins": "*"}})

if __name__ == '__main__':
    main()

Однако, когда я пытаюсь POST на этот сервер из вызова javascript в моем веб-приложении asp.net, firefox жалуется

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://localhost:8080/v1/job. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

На флеш-сервере я вижу этот журнал

127.0.0.1 - - [12/Apr/2019 01:50:46] "[37mOPTIONS /v1/job HTTP/1.1[0m" 200 -

Это информация с вкладки сети F12 в Firefox:

Mozilla Firefox F12 network tab

Это вызов javascript внутри моего ядра aspnet:

var xhttp = new XMLHttpRequest();
xhttp.open("POST", "https://localhost:8080/v1/job", true);
xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
var input = JSON.stringify({
    "Type": "Kundenvorgang",
    "Origin": "Email",
    "Status": "Offen",
    "Subject": "test",
    "Priority": "Niedrig",
    "SuppliedEmail": "blah@blah.com"
});
xhttp.send(input);

Что мне нужно изменить на сервере, чтобы POST-вызов работал? (и любой другой http глагол + маршрутный вызов)

...