Php 使用POST to/store资源时不允许使用Laravel方法

Php 使用POST to/store资源时不允许使用Laravel方法,php,jquery,ajax,laravel,post,Php,Jquery,Ajax,Laravel,Post,我用的是拉威尔5号 我有这样一个“订单”资源: Route::resource('orders', 'OrdersController'); 这将创建以下路由: | | POST | orders | orders.store | App\Http\Controllers\OrdersController@store | web | | | GE

我用的是拉威尔5号

我有这样一个“订单”资源:

Route::resource('orders', 'OrdersController');
这将创建以下路由:

|        | POST      | orders                            | orders.store      

    | App\Http\Controllers\OrdersController@store          | web          |
|        | GET|HEAD  | orders                            | orders.index          | App\Http\Controllers\OrdersController@index          | web          |
|        | GET|HEAD  | orders/create                     | orders.create         | App\Http\Controllers\OrdersController@create         | web          |
|        | DELETE    | orders/{order}                    | orders.destroy        | App\Http\Controllers\OrdersController@destroy        | web          |
|        | GET|HEAD  | orders/{order}                    | orders.show           | App\Http\Controllers\OrdersController@show           | web          |
|        | PUT|PATCH | orders/{order}                    | orders.update         | App\Http\Controllers\OrdersController@update         | web          |
|        | GET|HEAD  | orders/{order}/edit               | orders.edit           | App\Http\Controllers\OrdersController@edit           | web          |
因此,我尝试使用jQuery发布到我的订单/商店,如下所示:

function StoreOrder(name, supplier, quantity, catnum, notes, urgency){
$.ajax({
  type: 'POST',
  dataType: 'text',
  url: 'orders/store',
  data: {
    _token: CSRF_TOKEN,
    name: name,
    supplier: supplier,
    quantity: quantity,
    catnum: catnum,
    notes: notes,
    urgency: urgency
  },
  error: function(jqXHR, textStatus, errorThrown){
    console.log(JSON.stringify(jqXHR));
    console.log('AJAX Error: ' + textStatus + ": " + errorThrown);
  },
  success:function(data){
    Materialize.toast(data);
    //Clear the form
  }
})


}
但我收到一个“MethodNotAllowed”错误。

这是我第一次尝试在laravel中使用AJAX。在我自己的过程代码中使用AJAX我很舒服,但是现在使用Laravel我遇到了一些问题。我错过了什么

谢谢

编辑:意识到我可能应该显示我的控制器代码:

    <?php

namespace App\Http\Controllers;
use App\Announcement;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Redirect;
use View;
use Auth;

class OrdersController extends Controller {

  public function index(){
   //show my page
}

  public function store(Order $order){
    //get a pleasing time stamp
    $today = date("F j, Y, g:i a");
    //stores a post in the database
    $order->create([
      'name'      => Request::input('name'),
      'supplier'  => Request::input('supplier'),
      'quantity'  => Request::input('quantity'),
      'catnum'    => Request::input('catnum'),
      'notes'     => Request::input('notes'),
      'urgency'   => Request::input('urgency'),
      'author'    => Auth::user()->username,
      'date'      => $today,
      'status'    => 'Processing'
    ]);

    return ('Order created successfully.');

  }

}

表中说路由是
orders
,而不是
orders/store
。啊,好吧,只要我向/orders URI发送POST请求,它就会使用来自我的OrdersController的store方法?是的,只需更改
url:“orders”
即可!非常感谢。现在转到下一个错误:)令牌不匹配错误。我将自己尝试获取此令牌。@Vrans-令牌不匹配是一种常见的情况,您需要将CSRF令牌作为头发送,而不是作为请求的一部分。