为什么我会得到';500(内部服务器错误jQuery.min.js:4)和#x27;以下ajax代码中有错误吗?

为什么我会得到';500(内部服务器错误jQuery.min.js:4)和#x27;以下ajax代码中有错误吗?,jquery,ajax,django,ajaxform,Jquery,Ajax,Django,Ajaxform,我试图通过打开引导登录模式并填写用户名和密码来登录用户,但当我点击“登录”按钮时,我在浏览器控制台中收到以下错误消息: ajax: $('#loginForm').on('submit',function(e){ e.preventDefault(); $.ajax({ type: "POST", url: "/librarysystem/login/", data: { 'username':$("username").val(), '

我试图通过打开引导登录模式并填写用户名和密码来登录用户,但当我点击“登录”按钮时,我在浏览器控制台中收到以下错误消息:

ajax:

$('#loginForm').on('submit',function(e){
  e.preventDefault();
  $.ajax({
    type: "POST",
    url: "/librarysystem/login/",
    data: {
      'username':$("username").val(),
      'password':$("password").val(),
      csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
    },
    dataType: 'json',
    success: function(data){
      if (data.response) {
        alert("Invalid");
      }  
      else
        alert("Valid");
   }        
  });
});
from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^register/$',views.create_user),
    url(r'^$', views.index, name="Index"),
    url(r'^validate/$',views.validateForm),
    url(r'^article/$', views.article, name="Article"),
    url(r'^Login/$',views.loginUser, name="Login")
]
from forms import signupForm
from django.http import JsonResponse
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User    

def loginUser(request):
    data = {}
    if request.method == 'POST':
       username = request.POST['username']
       password = request.POST['password']
       user = authenticate(username=username,password=password);                
       if user is None:
            data['response'] = False
       else:
            data['response'] = True
    return JsonResponse(data)
url.py:

$('#loginForm').on('submit',function(e){
  e.preventDefault();
  $.ajax({
    type: "POST",
    url: "/librarysystem/login/",
    data: {
      'username':$("username").val(),
      'password':$("password").val(),
      csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
    },
    dataType: 'json',
    success: function(data){
      if (data.response) {
        alert("Invalid");
      }  
      else
        alert("Valid");
   }        
  });
});
from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^register/$',views.create_user),
    url(r'^$', views.index, name="Index"),
    url(r'^validate/$',views.validateForm),
    url(r'^article/$', views.article, name="Article"),
    url(r'^Login/$',views.loginUser, name="Login")
]
from forms import signupForm
from django.http import JsonResponse
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User    

def loginUser(request):
    data = {}
    if request.method == 'POST':
       username = request.POST['username']
       password = request.POST['password']
       user = authenticate(username=username,password=password);                
       if user is None:
            data['response'] = False
       else:
            data['response'] = True
    return JsonResponse(data)
视图。py:

$('#loginForm').on('submit',function(e){
  e.preventDefault();
  $.ajax({
    type: "POST",
    url: "/librarysystem/login/",
    data: {
      'username':$("username").val(),
      'password':$("password").val(),
      csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
    },
    dataType: 'json',
    success: function(data){
      if (data.response) {
        alert("Invalid");
      }  
      else
        alert("Valid");
   }        
  });
});
from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^register/$',views.create_user),
    url(r'^$', views.index, name="Index"),
    url(r'^validate/$',views.validateForm),
    url(r'^article/$', views.article, name="Article"),
    url(r'^Login/$',views.loginUser, name="Login")
]
from forms import signupForm
from django.http import JsonResponse
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User    

def loginUser(request):
    data = {}
    if request.method == 'POST':
       username = request.POST['username']
       password = request.POST['password']
       user = authenticate(username=username,password=password);                
       if user is None:
            data['response'] = False
       else:
            data['response'] = True
    return JsonResponse(data)

发布更多关于错误响应的信息会很有帮助,比如

    $.ajax({
    type: "POST",
    url: "/librarysystem/login/",
    data: {
      //...
    },
    dataType: 'json',
    success: function(data){
      //...
    },
    error: function(jqXHR, status, err){
        alert(jqXHR.responseText);
    }
  });

顺便说一句,我只是猜测,Django的身份验证设置没有正确配置可能会引发异常。

更改以下两行

username = request.POST['username']
password = request.POST['password']


也许是的,这是我想在Django管理界面中每个用户的密码字段中得到的,用户来自哪里?如果它们是由您自己的管理表单创建的,请确保在
save
方法中调用了
user.set\u password
。这是我的注册表单->表单。py:这是我的注册视图:我应该在哪里使用“user.set\u password”?如您所见,我在注册表中不使用save方法,而是使用“create”来创建和保存用户。好的,我修复了无效密码的问题,如下所示:使用“create_user”方法而不是简单的“create”方法,但是如果我再次尝试注册同一个用户,它应该会显示我创建的错误,而不是我得到的错误“POST 500 internel服务器错误“在控制台中。如果“create_user”方法发现我已经注册的用户,它不会返回None吗???对密码进行哈希运算后,我仍然会得到相同的“500内部服务器错误”,详细信息如下:好的,这解决了问题,但即使我给出数据库中不存在的用户的用户名和密码,它也会为每个输入打印“有效”。我打印了返回authenticate的值,并为所有用户(包括数据库中不存在的用户)返回none。有什么不对劲留下来我解决了问题:)