Мы будем использовать ajax с jQuery, поэтому убедитесь, что у вас есть jQuery, прежде чем читать.
сначала вам нужно создать конечную точку для GET , перейдите по адресу urls.pyи добавьте конечную точку, скажем
path('/myserver/getID/', views.get_employee_name, name="whatever")
, теперь это вызывает get_employee_name
верно? Давайте теперь вызовем его в JS без обновления.
вот основной синтаксис ->
$.ajax({THIS IS A SIMPLE DICT})
ajax принимает параметры
type
, который является типом запроса url
- это URL-адрес запроса, который мы только что сделали выше (не полный URL-адрес, вы указываете конечную точку, с которой вы находитесь на веб-сайте, поэтому вы просто используете /myserver/getID/
) - также требуется
data
, который представляет собой словарь с вашими опубликованными данными (да, словарь внутри большего словаря ajax - it CAN take
success
, который является функцией длявызовите после получения ответа со статусом 200 (успех), и эта функция успеха может иметь параметр response
, который является вашим ответом - it CAN take
error
, который является функцией, которая получаетвызывается после ошибки и принимает error
в качестве аргумента
достаточно разговоров ...
$.ajax({
url: 'myserver/getID',
type: 'GET',
data: // don't specify this, we're not posting any data,
success: function (response) {console.log(response.data)}, //this will be what returned from python
error: function (error){console.log(error)}
})
это простой запрос ajax
ПРИМЕЧАНИЕ, если вы вернете редирект из python и примете его из ajax, он не будетработать, ajax не может перенаправить, обязательно помните, что в большинстве случаев люди спрашивают, почему redirect('mylink')
не работает после того, как я возвращаю его из ajax.
Другой ПРИМЕЧАНИЕ при работе с почтовыми запросами с помощью ajax вы должны включить токен csrf, который может быть включен
csrfmiddlewaretoken: '{%csrf_token%}'
Вы можете использовать Fetch API, если хотите, или даже обычный XMLhttprequest
.