Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将ajax与django一起使用失败,出现404错误_Javascript_Jquery_Django_Ajax - Fatal编程技术网

Javascript 将ajax与django一起使用失败,出现404错误

Javascript 将ajax与django一起使用失败,出现404错误,javascript,jquery,django,ajax,Javascript,Jquery,Django,Ajax,我试图使用ajax来防止当有人点击页面上的like按钮时刷新网站 由于我是ajax新手,我尝试了一些方法将Django与ajax链接起来。我知道在使用表单或ajax时应该将csrftoken传递给Django,但结果证明它不起作用。Chrome控制台显示加载资源失败的错误消息:服务器以404(未找到)状态响应当前页面url和csrftoken,类似http://127.0.0.1:8000/event/TuffGeRykWO2jZAEGl6DNIxmwXH3x5tMjCvx6SHv5TsS7Dp

我试图使用ajax来防止当有人点击页面上的like按钮时刷新网站

由于我是ajax新手,我尝试了一些方法将Django与ajax链接起来。我知道在使用表单或ajax时应该将
csrftoken
传递给Django,但结果证明它不起作用。Chrome控制台显示
加载资源失败的错误消息:服务器以404(未找到)状态响应
当前页面url和
csrftoken
,类似
http://127.0.0.1:8000/event/TuffGeRykWO2jZAEGl6DNIxmwXH3x5tMjCvx6SHv5TsS7DpOCB3j4fBvF0BEFamu

这是我的ajax代码

// pug file 
#likebutton(style="background-image: url('/static/file/like-bg-n.png')")
  button(type="image", src="{% static 'file/like-bg-n.png' %}", alt="Submit Form",name="event_id", value="{{ event_detail.id }}")
    span#like-img
{% endif %}
script.
  $(document).ready(function(){
    $("#likebutton").on("click", function() {
      like_handler("{% url 'like' %}", "{{ csrf_token }}", "{{ event_detail.id }}");
    })
  })
//js文件
函数类似于\u处理程序(CSRF、URL、事件\u id){
$.ajaxSetup({
数据:{
csrfmiddlewaretoken:CSRF
}
});
var csrftoken=$('[name=“csrfmiddlewaretoken”]')。val();
$.ajax({
键入:“post”,
url:url,
数据:{
事件id:事件id,
“csrfmiddlewaretoken”:csrftoken
},
数据类型:“json”,
成功:功能(数据){
data=JSON.parse(数据);
如果(data.status='200'){
console.log('success')
if(data.add){
$('likebutton').attr(“src”,“/static/file/like-bg-y.png”)
$(“#成员”)。追加(
" \
"
)
}else if(data.remove){
$('likebutton').attr(“src”,“/static/file/like-bg-n.png”)
}
}否则{
log(“错误:ajax错误”);
}
}
})
}
#view.py
def like_视图(请求):
如果request.is_ajax()和request.method==“POST”:
data=request.POST
event=get_object_或_404(EventsBoard,id=data.get('event_id'))
if event.likes.filter(id=request.user.userextend.id).exists():
event.likes.remove(request.user.userextend)
返回JsonResponse({
“添加”:False,
“删除”:True,
“状态”:“200”
})
其他:
event.likes.add(request.user.userextend)
receiver=event.host.user
sender=request.user
通知=SiteNotification.objects.create(
text=sender.userextend.full_name+“对您的活动感兴趣”,
事件=事件,
对于_user=receiver,
from_user=发送方
)
通知。保存()
返回JsonResponse({
“add”:True,
“删除”:False,
“状态”:“200”
})
返回JsonResponse({
“状态”:“404”,
“错误消息”:“[错误]不是ajax请求”
})

我不知道哪里出了问题,提前谢谢

like_handler(CSRF,URL,event_id)
like_handler(“{%URL”like“%”)、“{{{CSRF_token}”、“{{{event_detail.id}”)
你注意到什么了吗?你没有按正确的顺序传递你的论点。。。另外,你应该在请求的头上设置CSRF令牌,而不是在数据中发送。哦…我真的没有注意到,我会修改它,非常感谢!