我正试图通过这个'这个'来自ajax的对象调用django视图,但是我的broswer中出现以下错误:
因为我是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 :(得分: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
。