Laravel Ajax请求返回错误500

时间:2017-02-16 13:49:43

标签: php ajax laravel laravel-5 laravel-5.3

我试图在laravel中创建一个Ajax请求,但我遇到了500(内部服务器错误)。这是我创建的路线:

Route::post('/ajaxtest', 'PagesController@update');

这是更新功能,目前无效。

public function update(Illuminate\Http\Request $request)
{
    // if ($request->isMethod('post')){    
 //        return response()->json(['response' => 'This is post method']); 
 //    }

 //    return response()->json(['response' => 'This is get method']);
}

这是jquery代码

function tryajax() {
$.ajax({
    type: "POST",
    url: './ajaxtest',
    data: "",
    success: function() {
        console.log("Geodata sent");
    }
})

};

按钮上有一个onclick功能。

2 个答案:

答案 0 :(得分:2)

这可能是由于csrf-protection middleware。您有2个选项:发出异常,或在请求中回显令牌。

https://laravel-news.com/excluding-routes-from-the-csrf-middleware

下次让你出错:

  • 打开chrome dev控制台
  • 转到网络标签
  • 点击请求查看预览子标签

enter image description here

答案 1 :(得分:1)

布局:

<meta name="csrf-token" content="{{ csrf_token() }}">

脚本:

function tryajax() {
  $.ajax({
   type: "POST",
   url: './ajaxtest',
   data: "",
   headers: { 'X-CSRF-TOKEN': $('meta[name=\'csrf-token\']').attr('content') }
   success: function() {
     console.log("Geodata sent");
   }
})

};

添加csrf-token以请求