在laravel 10中通过jquery更新图像

x8goxv8g  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(147)

我正在尝试使用Jquery更新Laravel中的配置文件图像。
这是怎么了?我想通过Jquery补丁调用更新个人资料图像,你能帮我吗?
这是我的JS文件

$("#image").on('change', function (e) {
    const origin = window.location.origin;
    const file = e.target.files[0];

    const formData = new FormData();

    formData.append('image', file);
    formData.append('_method', 'patch');

    $.ajax({
        url: `${origin}/profile/profile-pic/`,
        type: 'PATCH',
        data: formData,
        processData: false,
        contentType: false,
        headers: {
            'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content,
            'Accept': 'multipart/form-data',
        },
        success: function(response) {
            console.log('Image uploaded successfully');
        },
        error: function(xhr, status, error) {
            // Request failed, handle the error
            console.log('Error: ' + error);
        }
    });
});

字符串
这是我的控制器

public function updateImage(Request $request): JsonResponse
{
    dd($request->all());
    return response()->json();
}


dd()是一个空数组,如何解决这个问题?

7hiiyaii

7hiiyaii1#

我会尝试这样做:

$("#image").on('change', function (e) {
const origin = window.location.origin;
const file = e.target.files[0];
const formData = new FormData();
formData.append('image', file);
formData.append('_method', 'patch');
$.ajax({
    url: `${origin}/profile/profile-pic/`,
    type: 'POST',
    data: formData,
    processData: false,
    contentType: false,
    headers: {
        'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content,
        'Accept': 'multipart/form-data',
    },
    success: function(response) {
        console.log('Image uploaded successfully');
    },
    error: function(xhr, status, error) {
        // Request failed, handle the error
        console.log('Error: ' + error);
    }
});

字符串
});
AJAX 只接受GETPOST方法。

相关问题