首先讓我分享一些代碼:
視圖/表格:
<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
查詢
$('#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 >'
'<div >'
'<input hljs-string">'" data-name="' value '" type="number" name="weight[' value ']" min="1" max="3" value="1" style="text-align:center"> '
'</div>'
'<div style="padding-left: 9px">'
'<input type="checkbox" data-name="' value '" 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 中看到可用的資料: 我的 chrome 中的 like_values 和 color
我的問題是我的成功函式沒有被呼叫,陣列也沒有被迭代。但是它曾經可以作業,但我現在不知道是什么問題。我收到一個錯誤(我記得它曾經在出現這個錯誤的情況下作業。我曾經忽略它,但它說:
SyntaxError: Unexpected token s in JSON at position 0
也許我錯過了與此錯誤相關的內容。
有誰知道出了什么問題?
提前致謝
uj5u.com熱心網友回復:
JSON 語法規則規定資料應該用逗號分隔,但是您在 return 關鍵字中添加了一個額外的逗號以結束控制器功能。
改變這個:
return response()->json([
'like_values' => $like_values,
'color' => $color,]);
到:
return response()->json([
'like_values' => $like_values,
'color' => $color]);
uj5u.com熱心網友回復:
我找到了這個問題。如果您在我制作的螢屏截圖中看到回應,您還可以看到輸出:string(15) xlsx ausgel?st。所以我也在var_dump()我的控制器中做了一個。所以這個字串不是 json 格式,這就是為什么它永遠不會轉到我的success function. 實際上我從來不知道我從控制器發送到我的視圖的所有內容都將被ajax. 我以為只有這個代碼。
return response()->json([
'like_values' => $like_values,
'color' => $color]);
這將被考慮。
但是,var_dumps()從控制器中洗掉后它作業正常,只有我的實際回應資料被發送到視圖,ajax 將其識別為 json 并success:執行了函式。
無論如何,謝謝你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/378980.html
