所以我正在学习Angular,我想创建一个使用Restful Web服务的Web应用程序。所以我的页面看起来像这样:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html ng-app="Tripeew">
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Tripeew</title>
</head>
<body ng-controller="region">
<h1>Hello World !!</h1>
<p>Id : {{All.id}}</p>
<p>Nom :{{All.nom}}</p>
<br/>
<script type="text/javascript">
var myapp = angular.module('Tripeew',[]);
myapp.controller('region',function($scope,$http){
$http.get('http://localhost:9090/Tripeew_V1.0/webresources/tripeewws.regions/3').succes(function(){
$scope.All = response.data ;
});
});
</script>
</body>
</html>
但我不能得到ws的结果,这是通过URL工作的,我得到的就是:
Hello World !!
Id : {{All.id}}
Nom :{{All.nom}}
答案 0 :(得分:1)
使用以下语法:
$http.get('http://localhost:9090/Tripeew_V1.0/webresources/tripeewws.regions/3').then(function(response) {
$scope.All = response.data ;
});
发生错误是因为作者使用的AngularJS版本为1.6.9
,但success()/error()
版本中已删除1.6.0-rc.0
( see Changelog )。< / p>
突然改变:
$http
已弃用的自定义回调方法 -success()
和error()
- 已被删除。你可以使用标准 相反,then()
/catch()
承诺方法,但请注意该方法 签名和返回值是不同的。
success(fn)
可以替换为then(fn)
,error(fn)
可以替换为then(null, fn)
替换为catch(fn)
或$http(...). success(function onSuccess(data, status, headers, config) { // Handle success ... }). error(function onError(data, status, headers, config) { // Handle error ... });
。在:
$http(...). then(function onSuccess(response) { // Handle success var data = response.data; var status = response.status; var statusText = response.statusText; var headers = response.headers; var config = response.config; ... }, function onError(response) { // Handle error var data = response.data; var status = response.status; var statusText = response.statusText; var headers = response.headers; var config = response.config; ... }); // or $http(...). then(function onSuccess(response) { // Handle success var data = response.data; var status = response.status; var statusText = response.statusText; var headers = response.headers; var config = response.config; ... }). catch(function onError(response) { // Handle error var data = response.data; var status = response.status; var statusText = response.statusText; var headers = response.headers; var config = response.config; ... });
后:
$http(...).success(onSuccess).error(onError)
注意:上面显示的变化之间存在细微差别。使用
$http(...).then(onSuccess, onError)
或时onError()
$http()
回调将{。}} 仅处理onSuccess()
调用产生的错误/拒绝。如果onError()
回调会产生错误/拒绝,但不会 由$http(...).then(onSuccess).catch(onError)
处理,可能会被忽视。相反,使用时onError()
,$http()
将处理onSuccess()
和marker.setPosition(place.geometry.location); var location = place.geometry.location; var lat = location.lat(); var lng = location.lng(); var layer = new google.maps.FusionTablesLayer({ query: { select: 'geometry, Geographic Name, Agent Name, Agent Website, Agent Phone', from: TableId, where: 'ST_INTERSECTS(geometry, CIRCLE(LATLNG(' + lat + ', ' + lng + '),1))' } });
产生的错误/拒绝。
答案 1 :(得分:0)
自Angular 1.4.3起,不推荐使用success
语法。如果您使用的是较新版本的Angular,则应使用then
语法。
答案 2 :(得分:0)
嗯,你的代码有两个问题。第一个是显而易见的,因为有人告诉你要纠正sucess
到success
的错字,其次你没有将响应传递给你成功编写的处理函数。我的意思是你应该传递像.success((response)=> $scope.All = response.data)
这样的数据。
注意,我正在将response
传递给成功回调。
此外,您最好使用以下语法通过angularjs
发出http
个请求
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});