Почему метод get не работает в проектах Laravel и AngularJS? - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу разработать простой внешний интерфейс AngularJS и внутренний интерфейс Laravel.Я не знаю, почему мой маршрут AngularJS не связан с маршрутом laravel. Это упоминается как GET http://localhost/todos 404 (Not Found).Я надеюсь, что кто-то может помочь мне решить это.Заранее спасибо.

Hello.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel + Angularjs</title>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
</head>
<body ng-App>
    <div id="todos" ng-controller="Todoctrl">
    <h3 class="page-header">Todos<small ng-if="remaining()">{{remaining()}} remaining</small>
    </h3>
    <ul  class="unstyled">
        <li ng-repeat="todo in todos">
            <input type="checkbox" ng-model="todo.done">
            {{todo.text}}
        </li>
    </ul>
    </div>
</script>
    <script src="js/app.js">
</script>
</body>
</html>

Todo.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Todo extends Model
{
    protected $guarderd = [];

}

App.js

function Todoctrl($scope,$http){
    $http.get("/todos").success(function(todos){
        $scope.todos = todos;
    });
    $scope.remaining = function(){
        var count = 0;
        angular.forEach($scope.todos,function(todo){
            count == todo.done ? 0 : 1;
        });

    }
}

Route.php

Route::get('/', function () {
    return view('welcome');
});
Route::get('/',function(){
    return view('hello');
});
Route::get('/todos',function(){
    return Todo::all();
});

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Привет, моряк, посмотрим, что ты собираешься делать.

Прежде всего, в Laravel есть 2 разных файла и типа маршрута.

1-) routs / web.php// для представлений в доме (приложении) //
2-) route / api.php // для конечных точек api //

Если вы отправляете GET и ваша конечная точка находится в "web.php"не сработает.Пожалуйста, предоставьте конечные точки через «api.php».

Давайте сделаем вашу отладку в два этапа,

1-) php artisan route: list позволит вам узнать, какой домен находится в какой конечной точке (посмотреть или API).Вы можете получить полный список вашего приложения.
2-) Проверьте, определен ли ваш маршрут в том месте, где он должен быть (web или api)

После того, как вы все это сделали, CORS вызовет у вас проблемупотому что вы отправляете свои запросы на тот же локальный хост.

На быстром, который НЕ предлагает вам сделать следующее:

Зайдите в bootstrap / app.php и добавьте их перед $ app;

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type, X-Token-Auth, Authorization');

Пока вы разрабатываете, это позволит вам общаться с вашим бэкэндом, но не пройдет от юнит-тестов.Вы можете просто сохранить день.

Позже, через промежуточное ПО или любые другие библиотеки, вы можете решить проблему.

Надеюсь, это поможет.

0 голосов
/ 09 февраля 2019

Вам необходимо указать весь URI, например, http://locahost:8000/todos, и если у вас возникли проблемы с CORS, вы можете использовать эту библиотеку: LARAVEL CORS

ПРИМЕЧАНИЕ. Вы должны попробовать эту команду тоже php artisan serve --host=0.0.0.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...