Javascript laravel 5.2 ajax调用中的令牌不匹配异常

Javascript laravel 5.2 ajax调用中的令牌不匹配异常,javascript,php,ajax,laravel,laravel-5.2,Javascript,Php,Ajax,Laravel,Laravel 5.2,我得到了令牌不匹配的异常,每件事似乎都是正确的 这是我的视图代码 @extends('layouts.master') @section('content') <div class="bg"></div> <div class="login-sec clearfix"> <h1 class="lg-logo">YOU ARE JUST ONE STEP AHEAD</h1> <div class="login-b

我得到了令牌不匹配的异常,每件事似乎都是正确的

这是我的视图代码

@extends('layouts.master')
@section('content')
<div class="bg"></div>
<div class="login-sec clearfix">

    <h1 class="lg-logo">YOU ARE JUST ONE STEP AHEAD</h1>
    <div class="login-box clear">

        <form id="websiteform" action="#">
            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <div class="col-md-12 form-field">
                <label for="">Project Name</label>
                <input type="text" name="project" id="project">
            </div>

            <div class="col-md-12 form-field">
                <label for="">Website URL</label>
                <input type="url" name="website_url" id="website_url">
            </div>

            <div class="col-md-12 form-field">
                <button type="submit" class="btn-green btn-large">Add Your Website</button>
            </div>
        </form>

    </div>
</div>
@stop
以及路线和控制器功能

 Route::post('/project_save','WebsiteController@project_save');
  public function project_save()
{
    if(Request::ajax()){

        $validator = Validator::make(Request::all(), [
            'project' => 'required|max:255',
            'url' => 'required',
        ]);
        if($validator->fails()){
            return Response::json(['success'=>false,'error'=>$validator->errors()->toArray()]);
        }

        $Website = new Website;
        $Website->project_name = Request::get('project');
        $Website->website_url = Request::get('url');
        $Website->user_id = Auth::id();
        $Website->save();
        return Response::json(['success'=>true]);
    }

}

这是我的代码,我得到了TokenMismatch验证。

更改您的
\App\Http\Middleware\VerifyCsrfToken.php
,将此代码添加到函数
tokensMatch

if ($request->ajax()) {
        return true;
    }

更改您的
\App\Http\Middleware\VerifyCsrfToken.php
,将此代码添加到函数
tokensMatch

if ($request->ajax()) {
        return true;
    }
试试这个

$_token = "{{ csrf_token() }}";
$.post( 'myurl', { param1: $param1, param2: $param2, _token: $_token })
  .done(function( data )
{
    console.log('Done!');
});
试试这个

$_token = "{{ csrf_token() }}";
$.post( 'myurl', { param1: $param1, param2: $param2, _token: $_token })
  .done(function( data )
{
    console.log('Done!');
});

如果不希望对特定url进行CSRF保护,则可以在
App\Http\Middleware\VerifyCsrfToken.php
中添加url,如下所示

protected $except = [
    "project_save"
];

如果不希望对特定url进行CSRF保护,则可以在
App\Http\Middleware\VerifyCsrfToken.php
中添加url,如下所示

protected $except = [
    "project_save"
];

仔细检查以下各项:

我有一个类似的问题,这是一个简单的解决办法

将此添加到HTML元标记区域:

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

在表单标签内。

仔细检查以下各项:

我有一个类似的问题,这是一个简单的解决办法

将此添加到HTML元标记区域:

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


在表单标记中。

删除输入隐藏字段csrf_标记,并检查该字段是否是必需的,但它不会破坏AJAX calli已删除但存在相同问题。.您真正的标题模板具有csrf_标记()方法,而不是您在此处显示的静态标记,对吗?@DenisMysenko我不明白,抱歉,我在laravel是新手。删除输入隐藏字段csrf_token并检查该字段不是必需的,但它不会破坏AJAX CALI删除,但存在相同的问题。.您真正的头模板具有csrf_token()方法,而不是您在此处显示的静态标记,对吗?@DenisMysenko我不明白,对不起,我是拉雷维尔的新手。你建议禁用检查,而不是修复他的特殊情况。回答不正确,兄弟,因为无论何时请求是ajax,它都会返回true rite?是的,跳过所有Ajaxi请求。如果你这样做,为什么需要csrf保护?你建议禁用检查,不修复他的特殊情况回答不正确兄弟,因为无论何时请求是ajax,它都会返回真正的rite?是的,跳过所有Ajaxi请求如果你这样做,为什么需要csrf保护?不,这没有帮助..同一问题令牌不匹配…:-(检查此项并让我知道删除$.ajaxSetup({})函数并保留此项并让我知道它没有帮助..同一问题令牌不匹配…:-(检查此项并让我知道删除$.ajaxSetup({})函数并保留此项并让我知道。)
{{ csrf_field() }}