Django:为什么我的jQuery帖子url在到达服务器时会发生变化?
我有一个脚本运行以下Django:为什么我的jQuery帖子url在到达服务器时会发生变化?,jquery,ajax,django,Jquery,Ajax,Django,我有一个脚本运行以下post到Django后端: $(document).ready(function(){ $('.arrow-up, .arrow-down').click(function() { var myElement = $(this);
post
到Django后端:
$(document).ready(function(){
$('.arrow-up, .arrow-down').click(function() {
var myElement = $(this);
var url = myElement.data('url');
myElement.addClass('hidden');
var spinner = myElement.siblings('.spinning');
spinner.removeClass('hidden');
debugger;
$.post({
url: url,
// TODO: implement this better.
data: {vote: 'test'},
dataType: 'json',
success: function() {
myElement.toggleClass('arrow-selected');
spinner.addClass('hidden');
myElement.removeClass('hidden');
},
error: function() {
spinner.addClass('hidden');
myElement.removeClass('hidden');
// TODO: make this link to the signup modal.
alert('You must be logged in to vote');
}
});
});
});
当我在调试器上检查控制台时代码>语句,url
参数为“http://localhost:8000/item/6/1/“
但是,当POST
到达my django服务器时,它会将404返回到另一个url,即当前位置
,并附加[object%20Object]
:
"POST /lists/4/[object%20Object] HTTP/1.1" 404 2677
为什么会发生这种情况,以及如何对所需的url进行ajax调用?您正在用代码更新url
选中行var url=myElement.data('url')代码>您将url作为表单数据的一部分发送。我认为应该是:
$.post(url, {vote:'test'})
实际上,对于$.ajax来说,您使用的整个格式更好,所以可能最好将该post更改为ajax,并添加一个类似“post”的类型
$.ajax({
url: url,
type: 'POST',
// TODO: implement this better.
data: {vote: 'test'},
dataType: 'json',
success: function() {
myElement.toggleClass('arrow-selected');
spinner.addClass('hidden');
myElement.removeClass('hidden');
},
error: function() {
spinner.addClass('hidden');
myElement.removeClass('hidden');
// TODO: make this link to the signup modal.
alert('You must be logged in to vote');
}
});
否,根据我的问题,我在调试器中检查url
参数代码>语句,它是正确的。为什么不尝试通知url。我是说url值在触发点击事件时会发生变化。