На веб-сайте Django я пытаюсь проверить ввод поля для совпадений базы данных. У меня есть функции поиска в файлах Django .py, но поскольку я не могу запускать их после загрузки страницы, я предполагаю, что запрос POST для JavaScript является лучшим вариантом.Django Javascript POST-запрос
<input id="this_field" onblur="querySomething()">
Есть множество SO вопросов на JS POST [1, 2, 3 и т.д.], однако, я не мог получить любой из них, чтобы работать на меня. Вот один из моих многочисленных попыток получить что-то полезное ПРОИСХОДИТ:
function querySomething(){
$.ajax({
type: "POST",
url: "/my/url/",
data: {"check_this": "123-456789",},
success: function() {
alert('success');
}
});
Или
function postSearch() {
$.post("/my/url/",
{
"check_this": "123-456789",
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
})
}
Если я просто рассматривать вход, как в поле поиска и отправить его (с JS или иным образом) он отлично работает , Однако, поскольку я пытаюсь предоставить результаты, чтобы помочь пользователю закончить заполнение остальной части страницы, мне нужно, чтобы результаты были доступны на той же странице, как только пользовательский фокус покидает поле.
Я не знаю, включен ли мой токен {% csrf_token %}
здесь. Я не получаю никаких ошибок или сообщений в консоли или в журналах сервера.
// отредактированную версию кода теперь гласит:
function querySomething(){
$.ajax({
type: "POST",
url: "/my/url/",
headers: {
"Content-Type": "application/json",
"HTTP_GROUP_NAME": "groups_name",
},
data: {
"check_this": $('#this_field').val(),
"csrfmiddlewaretoken": "{{csrf_token}}",
},
success: function(data){
console.log("success");
console.log(data);
},
failure: function(data){
console.log("failure");
console.log(data);
},
});
alert('marcusShep function ran.')
}
закодирована ограничить возможные ошибки оклейки здесь. Я изменил '{% csrf_token%}' на '" {{csrf_token}} ", чтобы исправить' ... неожиданную <'ошибку, поскольку первая сбрасывает скрытое поле' whyeliah
Я обновил свой ответ – marcusshep
@whyeliah, если вы нашли этот ответ полезным, вам следует принять его. – marcusshep