我正在尝试使用ajax登录方法。我收到错误"POST//[object%20Object] HTTP/1.1" 405 0"。我不知道我在哪里犯了错误。
views.py
class LoginVerify(View):
print('login')
def post(self,request,*args,**kwargs):
print("post called")
return HttpResponse("verified")
.html
<script>
$(document).ready(function(){
$("#loginform").on("submit", function(){
$.post({
data: {csrfmiddlewaretoken:'{{ csrf_token }}'},
url: "{% url 'feeds:login_view' %}",
success: function(data){
alert(data);
},
error: function(xhr, ajaxOptions, thrownError){
alert('login failed - please try again');
}
});
});
});
</script>
<body>
<form id ="login_form" method="post">
{% csrf_token %}
<input type="text" id="username">
<input type ="password" id="password" />
<input type="submit" value="login" />
</form>
urls.py
urlpatterns = patterns('',
url(r'^hello/',views.FeedContents.as_view(),name='main'),
url(r'^$',views.LoginVerify.as_view(),name="login_view"),
)
请拯救我的一天..提前致谢
结果:浏览器中显示空白页..在终端中,它显示"[12/Apr/2015 15:41:51] "POST/hello/HTTP/1.1" 405 0"
您只将csrf_token
发布到服务器,您应该使用FormData
来序列化表单数据并将其发送到服务器。
var fd = new FormData($("#loginform")[0]);
$.post({
data: fd,
url: "{% url 'feeds:login_view' %}",
// and other stuff
})