AngularJS jsfiddle $http echo 不返回数据
AngularJS jsfiddle $http echo not returning data
我在节点的方形连接 API 包装器中遇到了一个错误,我做了一个 fiddle 来重现这个问题。我注意到我的代码没有工作,因为 angular {{}} 东西没有出现。怎么了?
我唯一想做的就是在创建按钮下方显示原始 JSON 对象(最好是 {{res}},但这并不重要)。我只是想向库的作者证明我的对象和数据是有效的,并且错误在他的库中,而不是我的实现中。
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: item
}).success(function(data, status) {
$scope.res = data;
}).failure(function(data, status){
$scope.res = data+status;
});
data
没有从 jsfiddle 的 ECHO 返回。
您很接近,但是由于您将 $http
保存在一个变量中,您可以使用该变量访问其中的方法。 (即:httpRequest.success
/等)
也是.error()
不是.failure()
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: item
});
httpRequest.success(function(data, status) {
$scope.res = data;
});
httpRequest.error(function(data, status){
$scope.res = data+status;
});
jsFiddle 对它的 echo AJAX 示例很挑剔。您需要使用 json
正确格式化发送给他们的内容,将其字符串化并使用 jQuery 的 $.param
(因为 angular 不执行 POST 就像您习惯使用 jQuery).
- 我在下面的 fiddle 中加入了 jQuery。
- 我对发送的数据进行了不同的格式化
- 我把你的
{{ res }}
移到了控制器区域(你把它放在外面了,这意味着它不会计算)
- 我将
| json
过滤器添加到 {{ res | json }}
// the wacky format you need if you want to do fake $http to jsFiddle
// case in point, if you're trying to DEMO this, I wouldn't even bother, since it won't look like this when you actually use this within your application
var data = $.param({
json: JSON.stringify({
item
})
});
$http.post("/echo/json/", data)
.success(function(data, status) {
$scope.res = data;
}).error(function (status) {
});
这是一个使用 $httpParamSerializer
和延迟的示例。
angular.module('myApp',[]);
angular.module('myApp').controller('myVm',
function($scope,$http,$httpParamSerializer) {
var vm = $scope;
var xitem = {a:"1",b:"2"};
var data = $httpParamSerializer({
json: xitem,
delay: 6
});
console.log("Posting xitem");
vm.p = $http.post('/echo/json/',data);
vm.p.then (function(response) {
console.log(response);
console.log(response.data)
})
});
我在节点的方形连接 API 包装器中遇到了一个错误,我做了一个 fiddle 来重现这个问题。我注意到我的代码没有工作,因为 angular {{}} 东西没有出现。怎么了?
我唯一想做的就是在创建按钮下方显示原始 JSON 对象(最好是 {{res}},但这并不重要)。我只是想向库的作者证明我的对象和数据是有效的,并且错误在他的库中,而不是我的实现中。
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: item
}).success(function(data, status) {
$scope.res = data;
}).failure(function(data, status){
$scope.res = data+status;
});
data
没有从 jsfiddle 的 ECHO 返回。
您很接近,但是由于您将 $http
保存在一个变量中,您可以使用该变量访问其中的方法。 (即:httpRequest.success
/等)
也是.error()
不是.failure()
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: item
});
httpRequest.success(function(data, status) {
$scope.res = data;
});
httpRequest.error(function(data, status){
$scope.res = data+status;
});
jsFiddle 对它的 echo AJAX 示例很挑剔。您需要使用 json
正确格式化发送给他们的内容,将其字符串化并使用 jQuery 的 $.param
(因为 angular 不执行 POST 就像您习惯使用 jQuery).
- 我在下面的 fiddle 中加入了 jQuery。
- 我对发送的数据进行了不同的格式化
- 我把你的
{{ res }}
移到了控制器区域(你把它放在外面了,这意味着它不会计算) - 我将
| json
过滤器添加到{{ res | json }}
// the wacky format you need if you want to do fake $http to jsFiddle
// case in point, if you're trying to DEMO this, I wouldn't even bother, since it won't look like this when you actually use this within your application
var data = $.param({
json: JSON.stringify({
item
})
});
$http.post("/echo/json/", data)
.success(function(data, status) {
$scope.res = data;
}).error(function (status) {
});
这是一个使用 $httpParamSerializer
和延迟的示例。
angular.module('myApp',[]);
angular.module('myApp').controller('myVm',
function($scope,$http,$httpParamSerializer) {
var vm = $scope;
var xitem = {a:"1",b:"2"};
var data = $httpParamSerializer({
json: xitem,
delay: 6
});
console.log("Posting xitem");
vm.p = $http.post('/echo/json/',data);
vm.p.then (function(response) {
console.log(response);
console.log(response.data)
})
});