Ajax发生错误无法正常工作

时间:2018-03-09 20:30:58

标签: laravel laravel-5 laravel-5.2

当用户首次访问索引路线上的网站时,我将获得用户的时区。

我在路线的index.blade.html文件上有一个ajax请求。 “/”

我将ajax路线发布到此路线“/ custom_sessions”。

错误即将

jquery-1.12.4.min.js:4 POST http://127.0.0.1:8000/custom_sessions 500(内部服务器错误)

// route the ajax is hitting

Route::post('/custom_sessions', 'CustomSessionsController@store');

-

// controller

class CustomSessionsController extends Controller
{

    public function store()
    {
        // when i remove this line the ajax request is successful with no errors in the console
        session('timezone' => $request('timezone'));
    }

}

-

// have this in my head in my html

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

-

// ajax script at the bottom of my index.blade.php file

$.ajax({

  headers: {
      "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
  },
  type: "POST",
  url: "/custom_sessions",
  data: {
      "timezone": "PST"
  }

});

1 个答案:

答案 0 :(得分:0)

这是你的问题:

session('timezone' => $request('timezone'));

抛出语法错误。第一个参数不是array,因此使用=>将抛出

  

语法错误,意外'=&gt;' (T_DOUBLE_ARROW)

应该是

session()->put("timezone", $request->input("timezone"));

下一个问题是您的功能不使用$request,因此您的store()功能应为:

public function store(Request $request){
  session()->put("timezone", $request->input("timezone"));
}

另外,请务必直接引用Request

public function store(\Illuminate\Http\Request $request){ ... }

或将其添加为班级顶部的use声明:

use Illuminate\Http\Request;
class CustomSessionsController extends Controller { ... }