POST JSON через Flask API не примет мой аргумент - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема с отправкой JSON в мой API ...

API:

app = Flask(__name__)
cors = CORS(app, resources={r"/*": {"origins": "*"}})

@app.route("/")
def hello():
    return jsonify({"about":"Hello wwworld"})

@app.route('/json-example', methods=['POST']) #GET requests will be blocked
def json_example():

    req_data = request.get_json()

    return jsonify(req_data)

AXIOS в Vue:

  <script>
    var app = new Vue({
      el: '#app',
      data: {
        message: 'Hello Vue!',
        result:'',
        test:   {
                "language" : "Python",
                "framework" : "Flask",
                "website" : "Scotch",
                "version_info" : {
                    "python" : 3.4,
                    "flask" : 0.12
                },
                "examples" : ["query", "form", "json"],
                "boolean_test" : true
            }
      },
      methods:{

        getResults () {
            axios.get(`http://127.0.0.1:5000/`)
            .then(response => {this.result = response.data})
            .catch(error => {
              console.log(error)
            })
        },

        getResults2 () {
            axios.post(`http://127.0.0.1:5000/json-example`, {
              params: {
                test
              }
            })
            .then(response => {this.result = response.data})
            .catch(error => {
              console.log(error)
            })
        }

      }
    })
  </script>

По какой-то причинея не могу получить доступ test json, который я хотел бы передать в качестве аргумента.Первая функция getResults () работает просто отлично, но когда я пробую getResults () 2, она выдает мне следующую ошибку:

index.html: 45 Uncaught ReferenceError: test не определен

Может ли кто-нибудь подсказать, пожалуйста, как это исправить?Я попытался опубликовать JSON через Почтальон и получил правильный ответ.

Спасибо, Якуб

1 Ответ

0 голосов
/ 03 октября 2018

Я думаю, что вам нужно сделать это в getResults2

    getResults2 () {
        axios.post(`http://127.0.0.1:5000/json-example`, this.test)
        .then(response => {this.result = response.data})
        .catch(error => {
          console.log(error)
        })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...