我正在尝试创建一个在上传图像时禁用自身的按钮,opload是使用AJAX完成的。但成功的回调是行不通的(我可以说,因为甚至控制台都没有在console.log
中显示其内容。我做错了什么?
我更改了网址部分,现在我在控制台上收到了这个:POST http://192.168.0.229:8000/feed/add 419(状态未知)
$(document).on('click', '[data-type-image]', function () {
$('#image_upload').click();
var formData = new FormData($(document));
$.ajax({
url: window.location.href,
type: 'POST',
data: formData,
beforeSend: function () {
console.log('before send working');
$('form').find('div').find('button').attr('disabled', true);
$('form').find('div').find('button').css('background-color', 'grey');
},
success: function(){
console.log('success working');
$('form').find('div').find('button').attr('disabled', false);
$('form').find('div').find('button').removeAttr('style');
},
error: function () {
console.log(error);
},
cache: false,
contentType: false,
processData: false,
xhr: function () { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) { // Avalia se tem suporte a propriedade upload
myXhr.upload.addEventListener('progress', function (e) {
}, false);
}
return myXhr;
}
});
});
答案 0 :(得分:1)
$(document)
返回一个jQuery对象,而不是要将包含端点url的字符串传递给ajax url属性。假设您要在同一端点执行POST
请求,并返回按钮所在的视图。
替换
url: $(document),
与
url: window.location.href,
编辑:(错误从500更改为419)
Ajax成功回调需要成功的HTTP响应(如200,302 ......)。如果后端在POST
请求后没有向客户端发送成功响应,则会收到419错误:端点存在,但{{1}没有返回操作请求,仅适用于POST
,其中返回了一个视图。
答案 1 :(得分:0)
您尚未提供Ajax工作的有效网址。 查看文档:{{3}} url应该是有效的url字符串。您正在传递 $(document)这是一个对象。 如果请求要转到服务器,请查看开发工具中的网络选项卡。
答案 2 :(得分:0)
这是代码可以为您提供索引,但首先您需要选择单词。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
$(document).ready(
function(){
$("#id1").click(function(){
var txt = $("#id1").val();
var test= txt.split(" ")
$(test).each(function(item){
if(test[item]==window.getSelection()){
alert( item);
}
});
});
});
</script>
<input type="text" id="id1" value="10" />