以下ajax代码有什么问题?

时间:2017-01-02 20:09:19

标签: jquery python ajax django

我正试图通过这个'这个'来自ajax的对象调用django视图,但是我的broswer中出现以下错误:

404 error

因为我是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>

感谢您的回复:)

2 个答案:

答案 0 :(得分:0)

  

问题是它找不到位置..有时候   它可能导致偶数路径正确但端口不是......

例如:  如果你正在使用localhost:8080但它在localhost:8000中的发现 我最近遇到了这个问题,然后我在项目中更改了属性文件。

答案 1 :(得分:0)

附带的屏幕截图给出了明确的答案,找不到请求的URL(错误404)。正如我在上面的评论中提到的,这是因为你使用一个简单的字符串作为AJAY URL:'/librarysystem/validate/this.id/'而不是连接url的静态和动态部分:

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

但是从我在代码示例中看到的情况来看,这可能不是唯一的问题 - 在您的代码中没有引用&{39; this.value