AJAX:成功不起作用

时间:2017-11-30 12:23:35

标签: jquery ajax

我正在尝试创建一个在上传图像时禁用自身的按钮,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;
        }
    });
});

3 个答案:

答案 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" />