Что не так со следующим кодом AJAX?

-3

Я пытаюсь передать идентификатор этого объекта из ajax-вызова в представление django, но я получаю следующую ошибку в моем браузере:

Изображение 174551

поскольку я начинаю как django, так и ajax, поэтому в коде могут быть ошибки.

вот мой код:

views.py

from django.shortcuts import render
from librarysystem.models import Users
from django.http import JsonResponse

def index(request):
    template = 'librarysystem/Elib.html'
    return render(request,template)

def validateForm(request, id):
    data = {
       'isTaken' : Users.objects.filter(username__iexact=request.GET.get(id,None)).exists(),
       #'emailidTaken' : Users.objects.filter(emailid__iexact=emailid).exists(),
      }
    return JsonResponse(data)

urls.py

from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^registered/$',views.create_user),
    url(r'^$', views.index, name="Index"),
    url(r'^validate(?P<id>)/$',views.validateForm),
    #url(r'^article/$', views.Article, name="Article"),
]

Код ajax:

<script type="text/javascript">
function validateForm() {
        //var emailid = $('#emailid').val() ;
        $.ajax({
             url: '/librarysystem/validate/this.id/',
             data: {
         'this.id': this.value,
        //'emailid': emailid,
             },
             dataType: 'json',
             success: function(data){
                    if (data.isTaken){
                       $('#error').html(this.id + ' Already taken.').css('color','red');
                    }else
                       $('#error').html('');
             }
        }) ;
    }
$(document).ready(function() {
   $('#retrypassword').keyup(checkPasswordMatch);
   $("#username, #emailid, #password, #retrypassword").keyup(validateForm);
});
</script>

спасибо за ваши добрые ответы :)

  • 0
    URL может не существовать. Я предполагаю.
  • 0
    /librarysystem/validate/this.id/? this.id выглядит так, как будто его нужно заменить реальным значением id?
Показать ещё 2 комментария
Теги:

2 ответа

0

Приложенный скриншот дает четкий ответ, запрошенный URL-адрес не найден (ошибка 404). Как я уже упоминал в своем комментарии выше, это связано с тем, что вы используете простую строку для URL-адреса '/librarysystem/validate/this.id/': '/librarysystem/validate/this.id/' вместо конкатенации статической и динамической части URL '/librarysystem/validate/this.id/':

$.ajax({
  url: '/librarysystem/validate/' + this.value + '/',
  // the rest of your code....
  data: {}
});

Но из того, что я вижу в вашем примере кода, это может быть не единственная проблема - в вашем коде нет ссылки на this.value.

0

проблема в том, что он не находит местоположение. Иногда это может привести к тому, что правильный путь правильный, но порт не...

например: если вы используете localhost: 8080, но его обнаружение в localhost: 8000 Недавно у меня была эта проблема, после чего я изменил файл свойств в моем проекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню