Javascript Laravel路由在API中不工作,返回404页

Javascript Laravel路由在API中不工作,返回404页,javascript,php,laravel,Javascript,Php,Laravel,在routes/api.php中,我有以下路径: Route::post('/session/storeValue', 'HomeController@storeValue'); 在控制器中,我有AJAX功能: <script> function noviArtikal() { var data = { name: 'User'); $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta

在routes/api.php中,我有以下路径:

Route::post('/session/storeValue', 'HomeController@storeValue');
在控制器中,我有AJAX功能:

<script>

        function noviArtikal() {

  var data = { name: 'User');

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

  $.ajax({
    type: "POST",
    url: '/session/storeValue',
    data: data,
    success: function() {
      console.log("Valueadded");
    }
  });

        };
</script>
但在发送AJAX调用时未找到错误页面。
我做错了什么?

由于它是api.php,它会自动将/api/添加到您的URL中。试试/api/session/storeValue

从文档:

Routes/api.php文件中定义的路由嵌套在路由中 按RouteServiceProvider分组。在这个组中,/api URI 前缀将自动应用,因此您无需手动应用 它将发送到文件中的每个路由。您可以修改前缀和其他名称 通过修改RouteServiceProvider类来路由组选项

编辑:

添加名称:

路由::post'/session/storeValue','HomeController@storeValue'->名称“自定义名称”

然后修改您的javascript:

$.ajax{ 类型:POST,, url:“/session/storeValue”, 数据:数据

$.ajax{ 类型:POST,, url:“{route'custom_name'}}}”, 数据:数据

编辑2:
是的,不要发送CSRF_TOKEN check@Yur Gasparyan answer

,因为它是api.php,它会自动将/api/添加到您的URL中。请尝试/api/session/storeValue

从文档:

Routes/api.php文件中定义的路由嵌套在路由中 由RouteServiceProvider分组。在此组中,/api URI 前缀将自动应用,因此您无需手动应用 它将发送到文件中的每个路由。您可以修改前缀和其他 通过修改RouteServiceProvider类来路由组选项

编辑:

添加名称:

路由::post'/session/storeValue','HomeController@storeValue'->名称“自定义名称”

然后修改您的javascript:

$.ajax{ 类型:POST,, url:“/session/storeValue”, 数据:数据

$.ajax{ 类型:POST,, url:“{route'custom_name'}}}”, 数据:数据

编辑2:
是的,不要发送CSRF_TOKEN check@Yur Gasparyan answer

在您的路径/web.php中添加此代码

Route::post('/session/storeValue', 'HomeController@storeValue');

在route/web.php中添加此代码

Route::post('/session/storeValue', 'HomeController@storeValue');

首先,您不需要向api发送CSRF_令牌。检查CSRF-TOKEN没有意义,因为它是一个api。此外,要向api发送请求,您需要手动添加api前缀。

首先,您不需要向api发送CSRF_令牌。检查CSRF-TOKEN没有意义,因为它是一个api。同样,要向api发送请求,您需要添加api prefix手动。

只需给路线命名,如下所示:

路由::post'/session/storeValue','HomeController@storeValue“->命名为‘某物名’

在ajax调用中,只需将url属性更改为: url:{{route'somename'}}}

Laravel通过RouteServiceProvider自动将/api附加到api路由,并在/Providers文件夹中找到它


此外,在进行Api调用时,您不需要csrf_令牌。

只需为路由指定任何名称,如下所示:

路由::post'/session/storeValue','HomeController@storeValue“->命名为‘某物名’

在ajax调用中,只需将url属性更改为: url:{{route'somename'}}}

Laravel通过RouteServiceProvider自动将/api附加到api路由,并在/Providers文件夹中找到它


另外,在进行Api调用时,您不需要csrf_令牌。

您的浏览器正在调用的路由请参阅调试器控制台中的“网络”选项卡。正在调用的路由是否发生重定向?请查看浏览器正在调用的路由的可能副本请参阅调试器控制台中的“网络”选项卡。正在调用的路由是否发生重定向?请可能是重复的,但它调用localhost/appname/public/api/session/storeValue,出现错误404您是否使用了url:{route'yourroutename'}?我只是从Button调用onclick=noviArtikal,然后不是手动编写url,而是通过route函数。添加这里提到的名称。然后使用:url:{route'yourroutename'}}但我不确定在哪里调用它,因为我只是用Ajax调用js函数,我尝试过,但它调用localhost/appname/public/api/session/storeValue,出现错误404您是否使用了url:{{route'yourroutename'}}?我只是从Button调用onclick=noviArtikal,而不是手动编写url,而是通过route函数。像这里提到的那样添加名称。然后使用:url:{route'yourroutename'}但我不确定在哪里调用它,因为我只是用Ajax调用js函数,如果我改为Route::post'api/session/storeValue','HomeController@storeValue'和url:'api/session/storeValue',如果你是这样说的话,我会调用localhost/appname/public/api/session/storeValue。你不需要更改'Route::post'session/storeValue','HomeController@storeValue“`to`Route::post'api/session/storeValue',”HomeController@storeValue“。您需要在routes/api.php中移动路由`如果我更改为Route::post'api/session/storeValue',”HomeController@storeValue’;和url:'api/session/storeValue',如果您的意思是这样的话,我得到localhost/appname/public/a
调用了pi/session/storeValue。您不需要更改'Route::post'session/storeValue','HomeController@storeValue“`to`Route::post'api/session/storeValue',”HomeController@storeValue'. 您需要在routes/api.php中移动路由`