新手问题请耐心等待。这是一个简单的ajax代码:单击按钮删除服务器上的图像。但是在Firebug> Net> XHR中,我看不到这个请求。
PS:我将删除按钮的类型设置为“按钮”而不是“提交”以防止页面刷新,这是正确的做法吗?
$('.delete').on('click', function() {
var currentpath = window.location.pathname;
var path = currentpath + '/delete';
var csrftoken = $.cookie('csrftoken');
var data = {};
data['csrfmiddlewaretoken'] = csrftoken;
data ['filename'] = $('.image-input').val();
$.ajax({
url: path,
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
success: function(data){
$('button.delete').css('visibility', 'hidden');
}
});
});
编辑:删除按钮的代码
<button type='button' class='delete first'>❌</button>
EDIT2:代码意图
我只需要将文件名字符串传递给服务器,这样服务器就可以通过该字符串查询图像并删除该图像。我不希望页面刷新。
答案 0 :(得分:2)
答案 1 :(得分:1)
$(function(){
$('.delete').on('click', function() {
//var currentpath = window.location.pathname;
var path = 'delete';
var csrftoken = $.cookie('csrftoken');
var data = {};
data['csrfmiddlewaretoken'] = csrftoken;
data ['filename'] = $('.image-input').val();
$.ajax({
url: path,
type: 'POST',
data: data,
cache: false,
//contentType: false,
//processData: false,
success: function(data){
alert('success');
$('.delete').css('visibility', 'hidden');
}
});
});
});
答案 2 :(得分:0)
试试这个:
$('.delete').on('click', function(e) {
e.preventDefault();
var currentpath = window.location.pathname;
var path = currentpath + '/delete';
var csrftoken = $.cookie('csrftoken');
var filename = $('.image-input').val();
var data = JSON.stringify({ csrfmiddlewaretoken: csrftoken, filename: filename }),
$.ajax({
url: path,
type: 'POST',
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function(data){
$('button.delete').css('visibility', 'hidden');
}
});
});
答案 3 :(得分:0)
定义错误回调函数也很好。为什么不使用google chrome和一些断点的inspect元素进行调试?
$(".delete").click(function(){
var currentpath = window.location.protocol+"//"+window.location.host;
var path = currentpath + '/delete';
var csrftoken = $.cookie('csrftoken');
var data = new Object();
data['csrfmiddlewaretoken'] = csrftoken;
data ['filename'] = $('.image-input').val();
$.ajax({
url: path,
type: 'POST',
data: data,
cache: false,
dataType: 'json',
contentType: false,
processData: false,
success: function(data){
$('button.delete').css('visibility', 'hidden');
}
});
});