我有一个脚本运行以下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');
}
});
});
});
当我在debugger;
语句处检查控制台时,url
参数为"http://localhost:8000/item/6/1/"
。
但是,当POST
到达我的django服务器时,它会将404返回到其他网址,当前location
附加[object%20Object]
:
"POST /lists/4/[object%20Object] HTTP/1.1" 404 2677
为什么会发生这种情况,如何才能对所需的网址进行ajax调用?
答案 0 :(得分:2)
您将网址作为表单数据的一部分发送。我相信它应该是:
$.post(url, {vote:'test'})
实际上,您使用的整个格式对于$ .ajax更好,所以也许将该帖子更改为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');
}
});
答案 1 :(得分:0)
您正在更新代码中的网址
检查行-------------------------------------------
| LEFT | MID | RIGHT |
-------------------------------------------
AUTO-WIDTH 80px AUTO-WIDTH