好吧,我会尽量简单地解释这一点。我已经设置了一个 Node 和 Express 和 mySQL 服务器,运行一个 RESTful API,具有常见的获取、发布、放置、删除功能,因为我可以在 Postman 中用它们进行测试,只需在 Chrome 中查找它。现在,这一切都在我的机器上本地运行。我有一个运行REST api的Ubuntu盒子。当我只是在 chrome 中查询时,我会得到我正在使用的字段的预期输出。
(示例请求"http://192.168.239.130:1337/api/plates/")给我这个。
{
"Plates": [
{
"lot_number": "P234",
"plate_number": "NGE-781",
"date_and_time": "2016-07-08T21:14:31.000Z"
},
{
"lot_number": "P234",
"plate_number": "FEB-423",
"date_and_time": "2016-07-08T21:26:08.000Z"
},
{
"lot_number": "P234",
"plate_number": "SEB-623",
"date_and_time": "2016-07-08T21:26:20.000Z"
},
{
"lot_number": "P234",
"plate_number": "ZEB-683",
"date_and_time": "2016-07-08T21:30:59.000Z"
},
{
"lot_number": "P234",
"plate_number": "FEW-083",
"date_and_time": "2016-07-08T21:31:57.000Z"
},
{
"lot_number": "L323",
"plate_number": "JEQ-324",
"date_and_time": "2016-07-11T18:59:03.000Z"
}
]
}
这些只是打印到屏幕的一些示例 mySQL 数据。正如我所希望的那样工作。我的问题是当我尝试使用角度脚本制作一个简单的 html 页面来尝试打印它不想打印它时。我得到的只是一张白纸。我尝试过使用其他 API 在线运行我的代码。我用我将在下面发布的相同代码打印出来没有问题。
<!DOCTYPE html>
<html>
</style>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="platesCtrl">
{{plates}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('platesCtrl', function($scope, $http) {
$http.get("http://192.168.239.130:1337/api/plates")
.then(function (response) {$scope.plates = response.data;});
});
</script>
</body>
</html>
就像我说的那样,用任何其他 API 在线工作运行它......我的不是与它有关的东西是本地的吗?即使像我说的那样,我可以将上述地址运行到....浏览器中的 api/plates API 没问题,让 JSON 吐出来。
任何知识将不胜感激
谢谢。
好吧,我会自己回答这个问题。从其他一些用户给出的评论中想到的。我检查了控制台,并收到一个错误,指出我有一个跨域问题,并且缺少"访问控制-允许来源"。我能够修复进入我的 API 调用函数并添加
res.header("Access-Control-Allow-Origin", "*");
到每个 API 调用。目前,这很有效,尽管我相信有一种更优雅的方式来实现同样的事情。
感谢您的帮助。