Javascript Django POST使用Ajax
我有一个应用程序名register\u login,这个应用程序管理登录和注册操作。我在localhost:8000/登录页面上有一个表单,我希望该按钮重定向到register_登录应用程序中的我的func,但我不能这样做。我是Django Framework的新手。我该怎么办 MAIN url.PY 登录页面.HTML 最后是我的功能。正如我之前所说,它在注册应用程序中 注册登录视图 我尝试更改url,如“/register\u login/success/”、“/register\u login/success/”、“/register\u login/success/”、“success/”或“/success/”。什么都不管用Javascript Django POST使用Ajax,javascript,jquery,python,ajax,django,Javascript,Jquery,Python,Ajax,Django,我有一个应用程序名register\u login,这个应用程序管理登录和注册操作。我在localhost:8000/登录页面上有一个表单,我希望该按钮重定向到register_登录应用程序中的我的func,但我不能这样做。我是Django Framework的新手。我该怎么办 MAIN url.PY 登录页面.HTML 最后是我的功能。正如我之前所说,它在注册应用程序中 注册登录视图 我尝试更改url,如“/register\u login/success/”、“/register\u log
我需要使用该函数,但它没有:(因为您是通过ajax登录的,所以无法在
测试
视图中重定向。您可以做的是在ajax成功函数中添加重定向。类似如下:
// similar behavior as an HTTP redirect
window.location.replace("/some-url/");
$(function() {
function readInput() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
$.ajax({
type: "POST",
url: "/success/",
data: {
username: username,
password: password,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
dataType: 'json',
success : function(json) {
window.location.replace("/some-url/");
}
});
}
$("#login").click(function(e){
e.preventDefault();
readInput();
});
});
或
此外,您需要修复javascript代码,在click处理程序中添加preventDefault,并在readInput中删除它。您还需要删除数据对象中的引号,并确保使用了正确的变量。如下所示:
// similar behavior as an HTTP redirect
window.location.replace("/some-url/");
$(function() {
function readInput() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
$.ajax({
type: "POST",
url: "/success/",
data: {
username: username,
password: password,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
dataType: 'json',
success : function(json) {
window.location.replace("/some-url/");
}
});
}
$("#login").click(function(e){
e.preventDefault();
readInput();
});
});
由于您是通过ajax登录的,因此无法在
test
视图中重定向。您可以做的是在ajax成功函数中添加重定向。类似如下:
// similar behavior as an HTTP redirect
window.location.replace("/some-url/");
$(function() {
function readInput() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
$.ajax({
type: "POST",
url: "/success/",
data: {
username: username,
password: password,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
dataType: 'json',
success : function(json) {
window.location.replace("/some-url/");
}
});
}
$("#login").click(function(e){
e.preventDefault();
readInput();
});
});
或
此外,您需要修复javascript代码,在click处理程序中添加preventDefault,并在readInput中删除它。您还需要删除数据对象中的引号,并确保使用了正确的变量。如下所示:
// similar behavior as an HTTP redirect
window.location.replace("/some-url/");
$(function() {
function readInput() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
$.ajax({
type: "POST",
url: "/success/",
data: {
username: username,
password: password,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
dataType: 'json',
success : function(json) {
window.location.replace("/some-url/");
}
});
}
$("#login").click(function(e){
e.preventDefault();
readInput();
});
});
谢谢你的回复。我需要用ajax访问func(),但我不能:(@Berkin)你的意思是你没有进入
test
方法吗?当我单击“login”按钮时,我需要将用户名和密码变量传递给我的func-its-test-以检查我的数据库变量以进行身份验证。但是在我的情况下,我不能将json传递给我的函数:(@Berkin我已经更新了我的答案,请确保你有jquery,然后检查你在javascript中使用的变量。谢谢你的回复。我需要用ajax更新我的func(),但我不能:(@Berkin你的意思是你没有进入测试
方法?当我单击“登录”时)按钮,我需要将用户名和密码变量传递给我的func-它的测试-以检查我的数据库变量以进行身份验证。但在我的情况下,我无法将我的json传递给我的函数:(@Berkin我已经更新了我的答案,请确保您有jquery,然后检查您在javascript中使用的变量。