我正在使用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>']);
什么可能导致错误被抛出而没有显示响应?
答案 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>']);