Flask Приложение не выполняется после успешного почтового запроса - PullRequest
0 голосов
/ 09 апреля 2020

Я написал веб-сайт form-website.html, где можно вводить данные в форме, которая передается script.js в мое Flask приложение server.py. Даже после публикации (после нажатия кнопки «Отправить» выдается сообщение 127.0.0.1 - - [09/Apr/2020 12:02:44] "OPTIONS /minimum HTTP/1.1" 200 - и сообщение об ошибке отсутствует, метод post в приложении Flask не выполняется, так как он не печатается).

form-website.html :

<!DOCTYPE html>
<html lang="en">
<head>

  <!-- Basic Page Needs
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <meta charset="utf-8">
  <title>Privacy Api: Deleting data from several sites for you</title>
  <meta name="description" content="">
  <meta name="author" content="">

  <!-- Mobile Specific Metas
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- CSS
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <link rel="stylesheet" href="css/normalize.css">
  <link rel="stylesheet" href="css/skeleton.css">
  <link rel="stylesheet" href="css/style.css">

</head>
<body>

  <!-- Primary Page Layout
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
  <div class="container">
    <div class="row">
      <div class="twelve columns" style="margin-top:30px">
        <h4>Enter at least this data</h4>
        <p>The websites need to identify you in order to delete your data. Thus, you will need to add some of your personal data including:</p>
      </div>
    </div>
    <div class="row">
      <div class="twelve columns">
        <form method="post">
          <label for="firstname">First name:</label>
          <input type="text" id="firstname" name="firstname" value="">
          <label for="lastname">Last name:</label>
          <input type="text" id="lastname" name="lastname" value=""><br>
          <label for="email">Email address:</label>
          <input type="text" id="email" name="email" value="">
          <label for="city">City:</label>
          <input type="text" id="city" name="city" value=""><br>
          <button id="minimum-info-button">Submit</button>
        </form>
      </div>    
    </div>
  </div>

  <script src="js/jquery.js"></script>
  <script src="js/script.js"></script>
</body>
</html>

script.js:

$(function(){

  $('#minimum-info-button').click(function () {
    let firstname = $("#firstname").val()
    let lastname = $("#lastname").val()
    let email = $("#email").val()
    let city = $("#city").val()

    $.ajax(
      { url:"http://localhost:5000/minimum",
        type: "POST",
        data: {"firstname": firstname, "lastname": lastname, "email": email, "city": city},
        contentType: "application/json",
        dataType:"json"
      })
      .done(function (data){
        console.log(data.answer)
        $("#add-answer").val(data.answer);
      });
  });

server.py:

from flask import Flask, request, Response
import json
app = Flask(__name__)

@app.route('/minimum', methods=['POST'])
def post_minimum():
    print("in post_minimum")
    data = request.get_json()
    firstname=data["firstname"]
    lastname=data["lastname"]
    email=data["email"]
    city=data["city"]
    print(firstname, lastname, email, city)
    answer="test answer"
    data = { "answer": answer, "request-content-type": "application/x-www-form-urlencoded" }
    return Response(json.dumps(data), mimetype='application/json')

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

Я ожидаю, что "in post_minimum" и имя, фамилия, адрес электронной почты, город будут напечатаны на консоли, но это не тот случай.

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...