我无法使用put方法获取变量 - xmlhttprequest - laravel

时间:2018-02-22 15:19:07

标签: javascript json laravel laravel-5 xmlhttprequest

我想保存我的图像数据,我正在使用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']);

那么,你有什么建议吗?我在这里错了什么?感谢你的帮助:)

2 个答案:

答案 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/"