【问题标题】:API route gives 404 error: Laravel 5.3API 路由给出 404 错误:Laravel 5.3
【发布时间】:2017-02-01 04:22:49
【问题描述】:

我在 godaddy 服务器上测试我的 api。但由于某些原因,路由无法正常工作并给出 404 错误

为了确保路由存在...我使用下面的代码对其进行了测试。

$routeCollection = \Route::getRoutes();

foreach ($routeCollection as $value) {
    echo $value->getPath();
}

您也可以在这里检查:http://pankajservers.in/ 当您在用户名或密码中输入任何内容并且当您看到控制台时...它会显示您 404 api 错误并且在本地它可以正常工作。

JQuery

var data = {
    "EmailAddress": $("input[name='EmailAddress']").val(), 
    "Password":     $("input[name='Password']").val(),
    "_token":       "{{ csrf_token() }}"
};
$.ajax({
    method: "POST",
    url:    "{!! route('AuthenticateUser') !!}",
    cache:  false,
    async:  true,
    data:   data,
    success: function(result) {
        return false;
    },
    error: function(result) {
        return false;
    }
});

HTML

<form method="POST" action="http://pankajservers.in/api/v1/AuthenticateUser" 
    accept-charset="UTF-8" 
    id="loginForm">

    <input name="_token" type="hidden" value="GtSNw3bgzFO6jwi8IVFWnvymd2e8EqIXkAhPtPxb">

    <input class="form-control" name="EmailAddress" type="text">

    <input class="form-control" name="Password" type="password" value="">

    <button type="submit" class="btn btn-primary">

</form>

发布路线

Route::post('/AuthenticateUser', 
    array(
        'uses' =>  'API\UserManagement\Auth\Login\apiLoginController@AuthenticateUser', 
        'as'   =>  'AuthenticateUser'
    )
);

路线服务商

Route::group([
    'middleware' => 'api',
    'namespace' => $this->namespace,
    'prefix' => 'api/v1',
], function ($router) {
    require base_path('routes/API/UserManagement/Auth/Login/Login.php');
});

【问题讨论】:

  • 您能否也发布您对该路线的前缀。好像没有前缀叫api/v1
  • 添加了RouteServiceProvider 代码。如果您需要更多信息,请告诉我。
  • 你有没有试过用php artisan route:list来检查你的前缀的路由是否存在?
  • 检查我的问题中的第一个代码块,作为证明,您可以在此处的页眉中看到路由列表:pankajservers.in

标签: laravel laravel-5.3


【解决方案1】:

在您的 ajax 请求中,所有 API 请求的前缀必须为“/api/”。

Ex: http://example.local/api/items

【讨论】:

    【解决方案2】:

    在我看来,您遇到了重写问题。我尝试前往您网站上的路线,但我在路线路径前添加了/index.php。这引发了 Laravel 方法异常,当您访问仅 POST 路由时,这是预期的。在这里,检查一下:

    http://pankajservers.in/index.php/api/v1/AuthenticateUser

    我不确定您使用的是 Nginx 还是 Apache,但我怀疑 Nginx 配置或 Apache .htaccess 不太正确。

    编辑:

    查看 Laravel 的安装文档。有一个关于重写配置的部分可能会给你一些见解:

    https://laravel.com/docs/5.4/installation#web-server-configuration

    【讨论】:

    • 它工作得很好,我该如何解决godaddy服务器中的这个重写问题? +1
    • 你知道你的服务器是用Nginx还是Apache?
    • 我在公用文件夹中缺少 .htaccess 文件/
    【解决方案3】:

    您可以通过将'prefix' =&gt; 'api/v1'更改为'prefix' =&gt; 'v1'来实现,

    在 laravel 中 api 假定在 api.php 路由的 url 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-04
      • 2018-09-26
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2019-10-30
      • 2013-12-26
      • 2014-12-21
      相关资源
      最近更新 更多