【发布时间】:2022-01-11 14:02:31
【问题描述】:
首先让我分享一些代码:
视图/表单:
<form id="xlsForm" enctype="multipart/form-data">
@csrf
<input class="btn btn-primary" id="loadFile" type="file" name="excelfile" accept=".xls,.xlsx,.docx,.doc" required/>
<input type ="hidden" name="load" value="0">
<button class="btn btn-light" name ="loadSubmit" id="loadSubmit" type="submit" value ="Analyze">Analyze</button>
</form
JQuery
$('#xlsForm').submit(function uploadFile(event) {
event.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
}
});
$('#loader').show();
$.ajax({
url: "{{route('ExcelToArray')}}",
method: 'POST',
data: new FormData(this),
dataType: 'JSON',
contentType: false,
cache: false,
processData: false,
success: function (response) {
console.log("entered response")
$("#inner").empty();
$.each(response.like_values, function (index, value) {
$("#inner").append
('<div class="row">' +
'<div class="col-xs-6">' +
'<input class="' + value + '" data-name="' + value + '" type="number" name="weight[' + value + ']" min="1" max="3" value="1" style="text-align:center"> ' +
'</div>' +
'<div class="col-xs-6" style="padding-left: 9px">' +
'<input type="checkbox" data-name="' + value + '" class="checkbox" value="' + value + '" name="checkbox[' + value + ']" checked > ' +
'<label style="color:' + response.color[value] + '; font-weight: bold" for="skillChoice_' + index + '">' + value + ' </label>' +
'</div>' +
'</div>');
});
},
error: function (jqXHR, textStatus, errorThrown) {
alert('jqXHR is : ' + jqXHR.value
+ 'textStatus is : ' + textStatus
+ ' errorThrown is : ' + errorThrown);
},
complete: function () {
console.log("entered complete")
$('#loader').hide();
load_employees()
},
});
});
在我的控制器中有很多东西我不会分享,因为这段代码
return response()->json([
'like_values' => $like_values,
'color' => $color,]);
在我的控制器功能结束时,我可以在 chrome 中看到可用的数据: like_values and color in my chrome
我的问题是我的成功函数没有被调用并且数组没有被迭代。但是它曾经可以工作,但我现在不知道是什么问题。我收到一个错误(我记得即使出现此错误它也可以正常工作。我曾经忽略它,但它说:
SyntaxError: 位置 0 处 JSON 中的意外标记 s
也许我遗漏了与此错误相关的内容。
有人知道怎么回事吗?
提前致谢
【问题讨论】:
-
尝试使用 json_encoded 传递您的
$like_values并在刀片上使用split函数,然后尝试迭代。 -
嗨@Ali,当我这样做时,它只是将其编码发送到我的视图。请记住,成功函数根本没有被调用。即使我只是放了一个
alert函数。我不认为我的问题与任何变量或编码有关,因为数据在那里,如果它会调用success函数,变量将被处理,但它根本没有进入成功函数。 -
您是否尝试过删除
contentType: false,cache: false,processData: false,并检查过?