我的路由文件有问题,并且使用Ajax引用路由。以下是所有相关路线和ajax代码的片段:
web.php(基本路线文件)中的我包括我需要的路线
require_once base_path('routes/shoppingcard.routes.php');
现在我的shoppingcard.routes.php就是这个让我烦恼的路线组
Route::group(['prefix' => 'shoppingCard'], function () {
// add Produkt
Route::post('addToBasket', ['as' => 'addToBasket', 'uses' => 'Shop\Frontend\AjaxController@index']);
});
我想引用addToBasket路由但直到现在才真正成功
这就是我的Ajax代码:
$(document).on('click', '#addToBasket', function () {
var quantitie = $('input[type=number]').val();
$.ajax({
type: "post",
url: "/shoppingCard/addToBasket", // <----- Route I try to refer to
data: {'id': $(this).data("id"), 'quantitie': quantitie},
dataType: 'JSON',
success: function (data) {
// not important
},
error: function (data) {
// not important
}
});
});
现在我尝试了很多东西来正确引用路线,但我总是得到500或404
我正在使用Laravel 5.3
我目前在控制台中收到的错误:
http://mypage.com/shoppingCard/addToBasket [HTTP / 1.0 500内部服务器错误49毫秒]
但路径(shoppingCard / addToBasket)看起来完全没问题,为什么我会收到错误? 我对此有点困惑
感谢您的帮助!
答案 0 :(得分:0)
尝试使用
$(document).on('click', '#addToBasket', function () {
var quantitie = $('input[type=number]').val();
$.ajax({
type: "post",
url: "/shoppingCard/addToBasket", // <----- Route I try to refer to
data: {'id': $(this).data("id"), 'quantitie': quantitie},
dataType: 'JSON',
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
success: function (data) {
// not important
},
error: function (data) {
// not important
}
});
});
我认为你没有使用csrf_token()
。我把它放在里面。
答案 1 :(得分:0)
我没有注意到您使用的是自定义路径文件。您是否已将自定义路径文件映射到RouteServiceProvider中?您可以在此处阅读:http://laravel-tricks.com/tricks/laravel-5-multiple-routes-files
答案 2 :(得分:0)
我给你举个例子来创建多个Route。我从给定的link开始。这是一个例子,你可以创建自己的路线。以下是示例:
- 创建两个路由文件routes.web.php和routes.api.php
醇>
- 编辑RouteServiceProvider.php文件,使其类似于下面的代码:(注意:您可以根据需要添加任意数量的路径,只需遵循相同的逻辑。)
<?php
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Routing\Router;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to the controller routes in your routes file.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $webNamespace = 'App\Http\Controllers\Web';
protected $apiNamespace = 'App\Http\Controllers\Api';
/**
* Define your route model bindings, pattern filters, etc.
*
* @param \Illuminate\Routing\Router $router
*
* @return void
*/
public function boot(Router $router)
{
//
parent::boot($router);
}
/**
* Define the routes for the application.
*
* @param \Illuminate\Routing\Router $router
*
* @return void
*/
public function map(Router $router)
{
/*
|--------------------------------------------------------------------------
| Web Router
|--------------------------------------------------------------------------
*/
$router->group(['namespace' => $this->webNamespace], function ($router) {
require app_path('Http/routes.web.php');
});
/*
|--------------------------------------------------------------------------
| Api Router
|--------------------------------------------------------------------------
*/
$router->group(['namespace' => $this->apiNamespace], function ($router) {
require app_path('Http/routes.api.php');
});
}
}
请回复我,它会解决您的问题。