У меня есть HTML-форма, которую я хочу отправить на конечную точку фляги/add_int. Когда форма будет отправлена перехватывать его с Jquery и отправить форму в конечную точку с помощью AJAX следующим образом:AJAX неправильно разрешает URL
var form = $(this).serialize()
$.post({
url: "{{ url_for('add_int') }}",
data: JSON.stringify(form),
contentType: 'application/json;charset=UTF-8',
success: function(resp) {
console.log(resp);
}
});
Конечной выглядит следующим образом:
@app.route('/add_int', methods=['GET', 'POST'])
@login_required
def add_int():
# do stuff
return jsonify(status="success!")
Моя проблема заключается в том, что я никогда не получаю до конечной точки.
Когда я анализирую свою консоль я вижу
POST http://127.0.0.1:5000/[object%20Object] 404 (NOT FOUND)
вместо
POST http://127.0.0.1:5000/add_int
, как я ожидал.
Обратите внимание, что, если я изложу
url: '/add_int',
Я столкнулся с такой же проблемой.
Я нашел случаи, которые используют почти идентичный код, который не упоминает эту проблему: например. how can I use data posted from ajax in flask?
Я предполагаю, что мой url решается как объект String, а не URL-адрес, но я не могу понять, почему это происходит, и как его исправить.
Что происходит?
Awesome. Это доводит меня до нужной точки! – ABM
Чтобы добавить к ответу немного, '$ .ajax' нужен ключ' url'. Ярлыки (например, '$ .get',' $ .post') принимают URL как первый параметр. – dirn