代码之家  ›  专栏  ›  技术社区  ›  user9334443

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

  •  0
  • user9334443  · 技术社区  · 7 年前

    我想保存我的图像数据,我正在使用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 回复  |  直到 7 年前
        1
  •  0
  •   Silverman42    7 年前

    AJAX请求中的URL与laravel路由中的URL不同

    AJAX ---> "images/update/"
    Laravel Route ---> "update/"
    
        2
  •  0
  •   Ru Chern Chong ABHINAV    7 年前
      xhr.open('PUT','images/update/'+id,false);
    

    您的路径包含其他 images 鉴于 web.php 仅显示 /update/{id} 没有 图像