angularjs - 无法从 api 获取数据,尽管它已连接
问题描述
我尝试使用 api 和 ajax $http 方法连接后端 laravel 和前端 angularjs。api已连接,但在ng-repeat方法中无法查看数据。我不知道是什么错误。希望任何人都可以帮助解决。提前致谢。
你好.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel + Angularjs</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="Todoctrl">
<li ng-repeat="x in todos">
{{ x.name }}
</li>
</div>
<script>
var app = angular.module('myApp',[])
.controller('Todoctrl',['$scope','$http',function($scope,$http){
var onStatsComplete = function(response){
$scope.todos = response.data;
}
$http.get("api/todos").then(onStatsComplete);
}
]);
</script>
</body>
</html>
api.php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('/todos','HomeController@todos');
家庭控制器.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class HomeController extends Controller
{
public function todos(){
$data = [
"name" => "sithi",
"mobile" => "0108817531",
"email" => "check",
"status" => 0
];
return response()->json($data)->header('Access-Control-Allow-Origin','*')
->header('Access-Control-Allow-Credentials','true')
->header('Access-Control-Allow-Methods','GET,POST,OPTIONS')
->header('Access-Control-Allow-Headers','DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type');
}
}
解决方案
你检查过response.data
包含的内容吗?使用资源集合的典型 Laravel api 响应会将数组置于其自己的数据键下,这使得response.data.data
在这些情况下从 JS 访问值所需的最终键。
推荐阅读
- swagger - 如何在 swagger doc 中设置参数的字段类型?
- cypress - 为什么我的 finally() 块不起作用,即如果测试用例失败 finally 块也不会在 cypress 中执行
- html - 如何在Angular中更正以下表达式
- flutter - 如果尚未安装,是否有任何方法可以使用 QR 码安装应用程序,如果已安装重定向到应用程序中的特定屏幕?
- java - Libgdx 演员没有出现
- python - 如何在 VSCode 中将虚拟环境设置为默认解释器
- php - 我正在尝试将 php 中的变量传递给 sql 函数以获得 LIMIT 值
- swift - 如何在 SwiftUI 中使用 Firestore 创建子集合
- php - 在最近的订单小部件中添加 billing_first_name (Woocommerce)
- php - 将 3 个 MySQL 表中的数据转换为 HTML 表错误