【问题标题】:Laravel 5.4 JQuery Request 405Laravel 5.4 JQuery 请求 405
【发布时间】:2017-03-22 08:07:57
【问题描述】:

我在 Laravel 5.4 中的 JQuery post requset 有问题。 Opera 开发者控制台提示,该方法不被允许(403)

我的路线

Route::get('/', 'HomeController@index');
Route::resource('/create', 'ProjectController');

JQuery 请求

jQuery(document).ready(function ($) {
    $('#create').on('submit', function () {
        $.post(
            $(this).prop('action'),
            {
                "_token": $(this).find('input[name=_token]').val(),
                "name": $('#name').val(),
                "creator": $('#creator').val(),
                "type": $('#type').val(),
                "game": $('#game').val(),
                "description": $('#description').val(),
            },
            function (data) {
                //TODO: do something with data/response returned by server
            },
            'json'
        );
        return false;
    });
});

请帮帮我

//编辑:

控制器

public function store(CreateProjectFormRequest $request)
    {
        $project = new Project;

        $project->name = $request->get('name');
        $project->section = $request->get('section');
        $project->creator = Auth::user()->name;
        $project->game = $request->get('game');
        $project->description = $request->get('description');

        $project->save();
        return 'success';
    }

【问题讨论】:

  • 这已经是一个帖子请求
  • $(this).prop('action') 中的网址是什么?
  • {!! Form::open(['data-toggle' => 'validator', 'url' => '/create', 'class' => 'create']) !!}
  • 这意味着您需要在ProjectControllerstore 函数中编写存储代码
  • 您需要将方法添加到 Form 元素中,例如 {!! Form::open(['data-toggle' => 'validator', 'url' => '/create', 'class' => 'create', 'method' => 'POST']) !!}

标签: javascript php jquery laravel request


【解决方案1】:

更改路线:Route::resource('/create', 'ProjectController');

对此::Route::post('/', 'ProjectController@store');

编辑:

我认为您收到错误是因为您提交了两次表单。使用表单的操作和 jQuery。

1 个解决方案

删除所有 jQuery 并将其添加到您的表单中:(只是一个提交按钮)

    {!! Form::submit('Submit') !!}

2 解决方案

从您的表单中删除操作并将您的 jquery 请求更改为这样开始

$.post('/create',
    {
        '_token':......

【讨论】:

  • 方法不允许
  • 好的,那么为什么不在 laravel 中以正确的方式提交,而你使用 jQuery 呢?我看不出需要。
猜你喜欢
  • 2017-12-12
  • 2018-06-12
  • 2019-05-09
  • 2017-08-18
  • 2019-01-18
  • 2018-05-03
  • 1970-01-01
  • 2017-07-05
  • 2018-05-28
相关资源
最近更新 更多