我想保存我的图像数据,我正在使用XMLHttpRequest,我也可以发送json数据,我可以在开发者控制台上看到它们(参数部分)。但是当我无法在服务器端使用它们时,$request
似乎为空?
这是我的javascript代码;
document.querySelectorAll('.galeri-cart').forEach(function (image) {
image.addEventListener('click',function () {
// update stuff
document.getElementById('submit_button').addEventListener('click',function () {
let xhr = new XMLHttpRequest(),
token = document.head.querySelector("[name=csrf-token]").content;
xhr.open('PUT','images/update/'+id,false);
xhr.setRequestHeader('X-CSRF-TOKEN',token);
xhr.onload = function () {
swal("Updated successfully", {
icon: "success",
});
};
let data = {};
data.alt = altInput.value;
data.url = urlInput.value;
xhr.send(JSON.stringify(data))
})
})
});
这是在我的控制器中;
public function updateMedia(Request $request, $id) {
$image = Media::find($id);
$image->image_alt_name = $request->input('alt');
$image->image_path = $request->input('url');
$image->save();
return json_endcode($request);
}
路线; (图片前缀下的此路线)
Route::put('update/{id}',['as'=>'media.update','uses'=>'MediaController@updateMedia']);
那么,你有什么建议吗?我在这里错了什么?感谢你的帮助:)
答案 0 :(得分:0)
xhr.open('PUT','images/update/'+id,false);
您的路径包含额外的images
而您的web.php
仅显示/update/{id}
而没有images
答案 1 :(得分:0)
AJAX请求中的URL与laravel路径中的URL
不同AJAX ---> "images/update/"
Laravel Route ---> "update/"