Return 函数对 Ajax 响应的可变结果
Return a variable result of a function to an Ajax response
这是我的 Ajax 电话:
$("#cover-input").change(function(){
var file_data = $("#cover-input").prop("files")[0];
var form_data = new FormData();
form_data.append("cover_file", file_data);
//kaherdin
$.ajax({
url: 'update-cover',
type: 'POST',
dataType: 'script',
data: form_data,
contentType: false,
processData: false,
async: false,
success: function(resp){
console.log(resp);
},
error: function(err){
console.log('Likes error', err);
}
});
readURL_cover(this);
});
我有一个基本 trim 并在更改时上传文件的功能。
public function updateCover(Request $request) {
$user = Sentinel::check();
$destinationPath = public_path('uploads/users');
if ($fileCover = $request->file('cover_file')) {
$input_cover = time().'.'.$fileCover->getClientOriginalExtension();
$img = Image::make($fileCover->getRealPath());
$img->fit(1920, 555, function ($constraint) {
$constraint->aspectRatio();
})->save($destinationPath.'/'.$input_cover);
// $user->cover = $input_cover;
$response = $input_cover;
return $response;
}
但这让我出错。我只想让 "input_cover" 回到我的 ajax 通话中,这样我就可以显示更新后的图片。
如果我改变: $response = $input_cover 到 $response = [$input_cover];它的工作很复杂,但输入就像:["my_pic.jpg"] 所以它不是很好。
您应该 return 一个像这样的 JsonResponse:
return response()->json(['input_cover' => $input_cover]);
检查此以了解 json 中的响应及其工作方式 https://laravel.com/docs/5.4/responses#json-responses
这是我的 Ajax 电话:
$("#cover-input").change(function(){
var file_data = $("#cover-input").prop("files")[0];
var form_data = new FormData();
form_data.append("cover_file", file_data);
//kaherdin
$.ajax({
url: 'update-cover',
type: 'POST',
dataType: 'script',
data: form_data,
contentType: false,
processData: false,
async: false,
success: function(resp){
console.log(resp);
},
error: function(err){
console.log('Likes error', err);
}
});
readURL_cover(this);
});
我有一个基本 trim 并在更改时上传文件的功能。
public function updateCover(Request $request) {
$user = Sentinel::check();
$destinationPath = public_path('uploads/users');
if ($fileCover = $request->file('cover_file')) {
$input_cover = time().'.'.$fileCover->getClientOriginalExtension();
$img = Image::make($fileCover->getRealPath());
$img->fit(1920, 555, function ($constraint) {
$constraint->aspectRatio();
})->save($destinationPath.'/'.$input_cover);
// $user->cover = $input_cover;
$response = $input_cover;
return $response;
}
但这让我出错。我只想让 "input_cover" 回到我的 ajax 通话中,这样我就可以显示更新后的图片。 如果我改变: $response = $input_cover 到 $response = [$input_cover];它的工作很复杂,但输入就像:["my_pic.jpg"] 所以它不是很好。
您应该 return 一个像这样的 JsonResponse:
return response()->json(['input_cover' => $input_cover]);
检查此以了解 json 中的响应及其工作方式 https://laravel.com/docs/5.4/responses#json-responses