我有一个带有http.post请求的角度控制器,但我没有得到响应,该服务工作正常,因为它使用postman进行测试。
我需要在加载页面时在HTLM表中显示来自WS的数据( 我知道如何做这个部分 ),我发送了变量名称为“数据”的请求正文,标题配置为变量名“ config ”,http.post调用我的WS的URL。
我是棱角分明的新手,所以我不知道我是否遗漏了什么东西,我也想在控制台中打印响应,以测试它是否符合我的期望。
我从网上找到的一个例子中获取了这个代码并对其进行了修改,在示例中有一个按钮,其中调用SendData()函数,但我不需要按钮,调用必须作为页面已加载。
这是控制器代码
.controller("HttpGetTestController", function ($scope, $http) {
$scope.SendData = function () {
var data = {
"userId":"mdrodri",
"token":"840430482834947828876768058086529370654",
"domain":"MX",
"filters":{
"timeFrameType":"Week (FiscalYear)",
"custMembSelectionType":"TOTAL",
"locationSelectionType":"Country",
"merchandiseSelectionType":"SBU",
"startYear":"2015",
"endYear":"2015",
"startUnit":"1",
"endUnit":"1",
"comparator":false,
"locationSelections":["CA"],
"merchandiseSelections":["SBU38"],
"custMembSelections":["TOTAL"],
"metricSelections":["Product Sales (Category Rank)"],
"rankOrder":"10"
},
"additionalFilters":[],
"cache":false
};
var config = {
headers : {
'Content-Type': 'application/json;'
}
}
$http.post('http://whateverurl/', data, config)
.success(function (data, status, headers, config) {
$scope.PostDataResponse = data;
console.log("Success");
})
.error(function (data, status, header, config) {
$scope.ResponseDetails = "Data: " + data +
console.log("Data: " + data);
console.log("Status: " + status);
console.log("Headers: " + header);
console.log("Config: " + config);
});
};
})
在我的HTML中,这就是我如何调用该控制器
<div class="panel panel-default" ng-controller="HttpGetTestController">
感谢您的时间和帮助。
答案 0 :(得分:1)
您需要在控制器中调用$ scope.SendData()函数:
.controller("HttpGetTestController", function ($scope, $http) {
$scope.SendData = function () {
//your code ...
}
//then the calling
$scope.SendData();//here
}