相当于 ajax 成功中 laravel 的返回视图('path',compact('data1', 'data2', 'data3' ))



我怎样才能得到等效的

return view('path',compact('data1', 'data2', 'data3' )) 

在阿贾克斯的成功。我在Laravel中经历了其他类似的问题,其中一些建议渲染方法实际上不是重定向。

以前,我将数据传递为:

return view('path',compact('data1', 'data2', 'data3' ))

但是,现在我已经更新了将文件上传到 ajax 方法的方法,但我陷入了如何传递具有完全相同结构的其他参数的困境。因此,我不需要更新其他代码。

我希望有等效的代码,这样在使用从这里传递的这些数据时就不需要更新任何代码。

阿贾克斯

' $(document(.ready(function(({ $('form'(.submit(function(event({

event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },
url: "{{url('admin/voter/sub/storecsv')}}",
data: formData,
type: 'post',
cache: false,
xhr: function() {
var xhr = new window.XMLHttpRequest();
$("#csv_uploading").modal('show');
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
percentComplete = parseInt(percentComplete * 100);
$('.uploadProgressBar').attr('aria-valuenow',percentComplete).css('width',percentComplete + '%').text(percentComplete + '%');
if (percentComplete === 100) {
$("#csv_uploading").modal('hide');
}
}
}, false);
return xhr;
},
processData: false,
contentType: false,
success:function(data){
if(data.success === true){
console.log(data);
}
}
});
});
});

'

.HTML

<form action="{{url('admin/voter/sub/storecsv')}}" class="form-horizontal file-upload" id="file_upload" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<input required="" type="file" name="import_file" id="import_file" />
<button class="btn btn-success btn-sm" id="upload_csv" disabled="true" type="submit">Import CSV or Excel File</button>
</form>

所以,如果有任何甜蜜而简单的方法,请告诉我。

在同一个函数中,你需要检查请求是否是 ajax。

public function method(){
if(request()->ajax()){
return Response([
'data1' => $data1,
'data2' => $data2,
'data3' => $data3,
]);
}
}

不要忘记包含use Response;这将返回对 ajax 方法的响应。

最新更新