【问题标题】:laravel error MethodNotAllowedHttpException No messagelaravel 报错 MethodNotAllowedHttpException 无消息
【发布时间】:2019-01-12 13:19:06
【问题描述】:

我的 laravel 程序中出现 MethodNotAllowedHttpException No message 错误。当我检查我的代码元素时,控制台说错误在 jquery.min.js 中

这是我的看法:

<div class="container">
          <div class="row">
              <div class="col-sm-10 col-sm-offset-2 col-md-10 col-md-offset-1">
                <div class="misc-box" style="min-height: 400px">

                </div>

                <div class="text-center misc-footer">
                    <span>Copyright &copy; {{ $name }}<br>E-SKM 1.0 - 2016</span>
                </div>
              </div>
          </div>
        </div>
      </div>
<!-- Survey Sections -->
  <script src="{{asset('js/survey_sections.js')}}"></script>
  <script>
      $(document).ready(function () {
          setPeriode('{{$selected}}');
      });

      function setPeriode(val) {
        $('.misc-box').html('');
        $.post('{{url("survey/getSurvey")}}', {_token: "{{ csrf_token() }}", p_id: val}, function(result) {
          $('.misc-box').html(result);
        });
      }
  </script>

这是我的路线:

Route::post('/survey/getSurvey', 'SurveyController@getSurvey');

还有我的控制器:

public function getSurvey(Request $request)
    {
        try{
            $input = $request->all();
            $p_id = $input['p_id'];    
            $periode = IKMPeriode::find($p_id);
            if ($periode) {
                $periode->update(['statactive' => 1]);
            }
            $operiode = IKMPeriode::where('id', '<>', $p_id)->get();
            foreach ($operiode as $key => $op) {
                $op->update(['statactive' => 0]);
            }

            $quest = IKMKuisioner::where('i_k_m_periode_id', $p_id)->get();

            $view = View::make('survey.survey_sections', compact('quest', 'periode'));
            return $view->render();
        }catch(\Exception $e){
            throw $e;
        }
    }

谁能帮帮我?请:)

【问题讨论】:

  • 你在meta标签中添加了csrf令牌吗
  • @FaizanFayaz 我做了
  • 您可能需要设置 ajax 标头

标签: jquery laravel


【解决方案1】:

正如 laravel 文档中提到的 X-CSRF-TOKEN

将元标记添加到页眉

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

并将此代码添加到您的脚本中

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

现在您可以从 jquery $.post 函数中删除 _token 参数

【讨论】:

    【解决方案2】:

    您可以尝试使用以下代码。似乎没有发送您的 csrf 令牌

    <script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $.ajax({
        type: 'POST',
        url: '/survey/getSurvey',
        data: { p_id: val} ,
        success: function(data){
            console.log(data);
        }
    });
    
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 2019-03-09
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多