jQuery AJAX文件上传冻结

时间:2014-11-30 15:28:28

标签: javascript php jquery html ajax

我正在使用jQuery的ajax函数上传文件。文件上传工作正常,数据发送正确但HTML不更新。提交表单时,不会重新启用这些按钮,并且控制台中会显示错误:“Uncaught SyntaxError:Unexpected Identifier”。错误的行号是我的HTML文档的第一行。

这是我的JavaScript代码:

jQuery(function($) {
    $('form[data-async]').on('submit', function(e) {
        var $form = $(this);
        var $target = $($form.attr('data-target'));
        $form.find('button').attr('disabled', 'disabled');
        $.ajax({
            url: $form.attr('action'),
            type: $form.attr('method'),
            data: new FormData(this),
            processData: false,
            contentType: false,
            success: function(data, status) {
                $target.html(data.response).css('display', 'block');
                $form.find('button').removeAttr('disabled');
            },
            error: function(data, status) {
                $target.html(data.response).css('display', 'block');
                $form.find('button').removeAttr('disabled');
            }
        });
        e.preventDefault();
    });
});

也不显示来自服务器的JSON响应。这是我的PHP代码的响应:

return Response::json(['response' => 'Image has been uploaded! <script>window.location.href="/image/"' . $filename . '"</script>']);

什么可能导致错误被抛出而没有显示响应?

2 个答案:

答案 0 :(得分:0)

我会看看你似乎已经重新编写PHP代码的jquery行:

$target
$form 

SB $ .target或$('#target')或类似的,没有?

答案 1 :(得分:-1)

解决了问题。

return Response::json(['response' => 'Image has been uploaded! <script>window.location.href="/image/"' . $filename . '"</script>']);

return Response::json(['response' => 'Image has been uploaded! <script>window.location.href="/image/' . $filename . '"</script>']);