AngularJS : TypeError: $http(...).success is not a function on asp.net WebMethod
AngularJS : TypeError: $http(...).success is not a function on asp.net WebMethod
我是 AngularJs
的新手,在 Web 表单中使用它
我的代码如下
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
var post = $http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).success(function (data, status) {
console.log(data);
$scope.userdata = data.d;
}).error(function (data, status) {
$window.alert(data.Message);
});
});
我的WebMethod代码如下
[WebMethod]
public static string GetData()
{
DataTable dt = Helper.UserList("sp_GetSearchList");
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(dt).ToString();
return JSONString;
}
我的 JSONString returns 完美 json 但我收到错误
TypeError: $http(...).success is not a function
我看到了很多关于 Stack overflow 的答案,但是 none 实际上解决了这个问题。
扩展问题
使用下面的代码解决了我的问题
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
$http.post("Index.aspx/GetData", {}).
then(function (response) {
console.log(JSON.parse(response.data.d));
$scope.userdata = JSON.parse(response.data.d);
});
},
function(error) {
});
我的前端绑定是这样的
<body data-ng-app="demoApp">
<form id="form1" runat="server">
<div data-ng-controller="usrController">
<table>
<tr>
<th>Sl No</th>
<th>User ID</th>
<th>Employee ID</th>
<th>Employee Name</th>
<th>Birth Date</th>
</tr>
<tr data-ng-repeat="data in userdata">
<td>{{data.ID}}</td>
<td>{{data.UserID}}</td>
<td>{{data.EmployeeID}}</td>
<td>{{data.EmpName}}</td>
<td>{{data.BirthDate}}</td>
</tr>
</table>
</div>
</form>
</body>
数据在 console.log
中完美呈现,但在前端没有绑定。
提前帮我wrong.Thanks
在下面试试。
$http.post( "Index.aspx/GetData", {} )
.then(function(response) {
$scope.userdata = response.data;
});
在 Angular 1.6 中,$http
服务发生了变化:您不能再使用 .success
和 .error
.
改为使用 .then
。来自 $http
docs:
$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.
});
应该是这样的
$http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).then(function(result) {
//Success
}, function(error) {
//Error
});
我是 AngularJs
的新手,在 Web 表单中使用它
我的代码如下
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
var post = $http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).success(function (data, status) {
console.log(data);
$scope.userdata = data.d;
}).error(function (data, status) {
$window.alert(data.Message);
});
});
我的WebMethod代码如下
[WebMethod]
public static string GetData()
{
DataTable dt = Helper.UserList("sp_GetSearchList");
string JSONString = string.Empty;
JSONString = JsonConvert.SerializeObject(dt).ToString();
return JSONString;
}
我的 JSONString returns 完美 json 但我收到错误
TypeError: $http(...).success is not a function
我看到了很多关于 Stack overflow 的答案,但是 none 实际上解决了这个问题。
扩展问题
使用下面的代码解决了我的问题
var app = angular.module('demoApp', [])
app.controller('usrController', function ($scope, $http, $window) {
$scope.userdata = {};
$http.post("Index.aspx/GetData", {}).
then(function (response) {
console.log(JSON.parse(response.data.d));
$scope.userdata = JSON.parse(response.data.d);
});
},
function(error) {
});
我的前端绑定是这样的
<body data-ng-app="demoApp">
<form id="form1" runat="server">
<div data-ng-controller="usrController">
<table>
<tr>
<th>Sl No</th>
<th>User ID</th>
<th>Employee ID</th>
<th>Employee Name</th>
<th>Birth Date</th>
</tr>
<tr data-ng-repeat="data in userdata">
<td>{{data.ID}}</td>
<td>{{data.UserID}}</td>
<td>{{data.EmployeeID}}</td>
<td>{{data.EmpName}}</td>
<td>{{data.BirthDate}}</td>
</tr>
</table>
</div>
</form>
</body>
数据在 console.log
中完美呈现,但在前端没有绑定。
提前帮我wrong.Thanks
在下面试试。
$http.post( "Index.aspx/GetData", {} )
.then(function(response) {
$scope.userdata = response.data;
});
在 Angular 1.6 中,$http
服务发生了变化:您不能再使用 .success
和 .error
.
改为使用 .then
。来自 $http
docs:
$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.
});
应该是这样的
$http({
method: "POST",
url: "Index.aspx/GetData",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
}).then(function(result) {
//Success
}, function(error) {
//Error
});