我的问题是我的JS中的每个函数都被调用两次。我一直在阅读许多有相同问题的主题,但我无法找到合适的答案。
这是我的代码:
HTML
<!doctype html>
<html ng-app>
<head>
<title>News</title>
</head>
<body ng-controller="newsCtrl">
<div>
<ul>
<li ng-repeat="item in news">
<h2>
{{item.shortFeed}}
<li class="dropdown pull-right">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Click!</a>
<ul class="dropdown-menu pull-right">
<li><a ng-click="rejectNewsItem(item)">Rechazar</a></li>
</ul>
</li>
</h2>
</li>
</ul>
</div>
</body>
<script src="js/angular.js"></script>
<script type="text/javascript" src="js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script src="js/pruebaRest.js"></script>
</html>
JS
function newsCtrl($scope, $http) {
$http.get('http://localhost:49643/news/todaynews')
.success(function (data) {
$scope.news = data;
})
.error(function (data) { });
$scope.rejectNewsItem = function (item) {
$http.get('http://localhost:49643/news/RejectNewsItem', { params: { newsItemId: item.id } })
.success(function (data, status, headers) {
item.approved = false;
item.rejected = true;
item.selected = false;
})
.error(function (data) {
alert("error");
});
}
}
这是我创建的整个JS。我没有 .config(function($ provider))或其他任何内容。
这里是流量的一些快照。
http://i.stack.imgur.com/7gMEG.png
http://i.stack.imgur.com/W175T.png
我想要实现的一件事是在第一次加载页面时发出$ http请求,以便页面自动填充从服务器获取的信息。 此外,当我单击按钮时,调用我的服务器并从服务器中删除该项目。 但我无法承受每次通话都是两次。
提前谢谢
答案 0 :(得分:1)
您所包含的两个屏幕截图不表示每次调用都进行了两次。如您所见,第一个调用是使用HTTP谓词OPTIONS。这是在调用GET之前调用以查看服务器上是否有GET动词。 OPTIONS是一个非常快速的电话。
当您使用angular进行CORS请求时,可能会发生这种情况。
This SO question可能有助于回答角度为何以及何时发生。
希望这有帮助。