使用Ajax和Laravel时内部服务器错误500

问题描述 投票:1回答:2

当我使用Ajax发送发布请求时,我收到内部服务器错误500并找不到解决方案。

这是包含Ajax的我的视图:

<html>
   <head>
      <title>upload</title>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="/js/xhr2.js"></script>

      <script type="text/javascript">

         $(function(){

            $('#btn').click(function(){

              $.ajax({

                  url:"localhost:8000/test",
                  type:"POST",

                  dataType:'json',
                  success:function(data){
                  console.log(data);
              }
            });
           });
         });
      </script>
   </head>
   <body> 

    <input type="text" name="username" id="txt">
    <input type="button" name="btn" id="btn" value="send">


   </body>

</html>

这是我的控制器:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class UploadsController extends Controller
{
    public function getUpload(){
        return view('upload');
    }

     public function postTest($request request){
         return response()->json(['name'=> 'khaled','age'=>45]);
    }
}

和我的路线:

Route::get('/upload','UploadsController@getUpload');
Route::post('/test','UploadsController@postTest');

当我单击按钮时,它应该发送和异步发布请求,但错误“内部服务器错误500”返回。

ajax laravel
2个回答
1
投票

错误可能发生,因为它缺少csrf-token

首先,添加元:<meta name="csrf-token" content="{{ csrf_token() }}">

然后,配置ajax请求的标头:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name=csrf-token]').attr('content')
    }
});

我希望它对你有帮助


1
投票

postTest函数的参数定义错误

public function postTest(Request $request){

     return response()->json(['name'=> 'khaled','age'=>45]);
}
© www.soinside.com 2019 - 2024. All rights reserved.