Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在laravel应用程序中返回405(不允许发布)的jQuery ajax请求_Javascript_Php_Ajax_Laravel_Laravel 4 - Fatal编程技术网

Javascript 在laravel应用程序中返回405(不允许发布)的jQuery ajax请求

Javascript 在laravel应用程序中返回405(不允许发布)的jQuery ajax请求,javascript,php,ajax,laravel,laravel-4,Javascript,Php,Ajax,Laravel,Laravel 4,我似乎无法理解这一点。这是apache配置吗?我见过一些filters.php配置来添加POST,但如果这是问题的话,它可能在laravel文档中的某个地方,对吗 路线: Route::get('orders/add', 'OrderController@add'); Route::resource('orders', 'OrderController'); 控制器(REST方法为空): jQuery: function add() { var tid = $('#sites input

我似乎无法理解这一点。这是apache配置吗?我见过一些filters.php配置来添加POST,但如果这是问题的话,它可能在laravel文档中的某个地方,对吗

路线:

Route::get('orders/add', 'OrderController@add');
Route::resource('orders', 'OrderController');
控制器(REST方法为空):

jQuery:

function add()
{
   var tid = $('#sites input[type=radio]:checked').attr('id');

   $.ajax({
      type: "POST",
      url: 'add',
      data: { tid: tid }
   }).done( function (msg){
      alert(msg);
   });
}
要发送的按钮:

<button onclick="add()" id="formSubmit"> Carrinho </button>

谢谢大家。

Route::get
需要一个get-HTTP头。你需要使用
Route::post

而不是

Route::get('orders/add','OrderController@add');

你应该使用

Route::post('orders/add','OrderController@add');


路由::get
需要一个get-HTTP头。你需要使用
Route::post

而不是

Route::get('orders/add','OrderController@add');

你应该使用

Route::post('orders/add','OrderController@add');


如果您使用的是资源控制器,那么您确实不需要/add路由,因为它已经有了一个create方法

OrdersController extends BaseController {
    public function index() {} // show ALL orders
    public function create() {} // show the form to create an order aka "add"
    public function store() {} // get input from post.
    public function update($order_id) {} // update an order resource 
    public function destroy($order_id) {} // destroy an order resource
}

在ajax中,将url更改为
url:{{url::route('orders.store')},
,这应该可以解决这个问题。

如果您使用的是资源控制器,实际上不需要/add路由,因为它已经有了一个create方法

OrdersController extends BaseController {
    public function index() {} // show ALL orders
    public function create() {} // show the form to create an order aka "add"
    public function store() {} // get input from post.
    public function update($order_id) {} // update an order resource 
    public function destroy($order_id) {} // destroy an order resource
}

在ajax中,将url更改为
url:{{url::route('orders.store')},
应该可以解决这个问题。

我一直想知道为什么函数名被称为“get”。我很尴尬。谢谢。我们都从某处开始:)。如果您希望使用RESTFUL逻辑,我可以建议您使用(在页面上搜索RESTFUL)吗?我一直想知道为什么函数名被称为“get”。我很尴尬。谢谢。我们都从某处开始:)。如果您希望使用RESTFUL逻辑,我可以建议使用(在页面上搜索RESTFUL)吗?
OrdersController extends BaseController {
    public function index() {} // show ALL orders
    public function create() {} // show the form to create an order aka "add"
    public function store() {} // get input from post.
    public function update($order_id) {} // update an order resource 
    public function destroy($order_id) {} // destroy an order resource
}