Как получить доступ к переменной из ajax / jquery POST, а не GET - PullRequest
0 голосов
/ 16 апреля 2020

Это, вероятно, простой вопрос, но я не могу понять его.

Если у меня есть маршрут обновления, подобный этому:

@app.route('/update', methods=['GET', 'POST'])
def update():
    x = request.args.get('foo')
    print(x)
    ...

и jquery вот так:

$(document).ready(function(){

  $("#foobar").click(function() {

      $.ajax({
              url: '/update',
              type: "GET",
              data: { foo: 'hello stack exchange!'}
            });
  });

});

Я могу получить доступ к сообщению и установить его равным x, а затем оно напечатает hello stack exchange!

, но если я изменю запрос на POST, а не на GET, как мне получить к нему доступ?

@app.route('/update', methods=['GET', 'POST'])
def update():
    x = request['foo'] # THIS DOESN'T WORK
    print(x)
    ...

и jquery вот так:

$(document).ready(function(){

  $("#foobar").click(function() {

      $.ajax({
              url: '/update',
              type: "POST",
              data: { foo: 'hello stack exchange!'}
            });
  });

});

Я понимаю, что полезная нагрузка не проходит через URL, поэтому мне нужно изменить request.args.get('foo') на что-то другое, но если request['foo'] не делает тогда что будет работать?

Ответы [ 3 ]

0 голосов
/ 16 апреля 2020

используйте request.get_json() для получения json

if request.is_json:
   data = request.get_json()
   foo= req_data['foo']    
0 голосов
/ 16 апреля 2020

для пост-запроса, где сохраняемый параметр зависит от заголовка Content-Type запроса

  • , если Content-Type = application / json, вы можете получить параметр с помощью «request. json» (в виде слова)

  • , если Content-Type = 'application / x- www-form-urlencoded', вы можете получить параметр с помощью "request.form "(как диктат) ---- Я думаю, это ваш сценарий,

  • , в противном случае вы можете попробовать request.data (в виде строки)

0 голосов
/ 16 апреля 2020

Некоторые из распространенных способов получения данных запроса.

request.form пары ключ / значение в теле, из формы после действия или запроса XHR, который не ' т закодированы. request.values в сочетании args и form, предпочитая args, если существуют повторяющиеся ключи. request.json запрос JSON данных. Запрос должен иметь тип содержимого application/json. то, что вы, вероятно, ищете, это request.values.get('foo').

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