Ошибка при отправке запроса POST с использованием axios - PullRequest
1 голос
/ 07 августа 2020

Как описано в заголовке, следующая ситуация:

flask сервер

app = flask.Flask(__name__, static_folder='static')
SESSION_TYPE = 'filesystem'
app.config.from_object(__name__)
logger = logging.getLogger(__name__)
app.secret_key = 'v3563vt3vg3vf3rfgb4ty456b35453b54t3gfefert35'
CORS(app, resources={
    r"/*": {
        "origins": "*"
    }
}, supports_credentials=True)
socketio = SocketIO(app, engineio_logger=True, logger=True)

@app.route('/login', methods=['GET', 'POST'])
def login():
    json_data = request.get_json()
    session['email'] = json_data['email']
    session['name'] = json_data['name']
    return "authenticated"

@app.after_request
def after_request(response):
    response.headers.add('Access-Control-Allow-Origin', 'http://localhost:8080')
    response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
    response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
    response.headers.add('Access-Control-Allow-Credentials', 'true')
    return response

@app.route('/checkDatabase', methods=['GET', 'POST'])
def check_database():
    to_check = os.path.join(os.getcwd(), "database_" + session['email'])
    to_send = ""
    if os.path.exists(to_check):
        to_send += "database found"
    else:
        to_send += "database NOT found"
    return to_send

vuejs интерфейс

let form = JSON.stringify(this.form);
this.axios
    .create({ withCredentials: true })
    .post("http://localhost:6543/login", JSON.parse(form), {
      headers: {
      },
    })

Вызов двух API из POSTMAN, flask может успешно сохранить их значения, потому что второй вызов возвращает желаемый ответ. Вместо этого при вызове их из vuejs на странице браузера localhost: 8080 я получаю сообщение об ошибке на главном сервере, потому что он говорит KeyError 'email'.

Я пробовал все решения, найденные в Интернете, но безуспешно. Что я делаю не так?

...