Javascript 从角度post方法获取数据
我有一个带有http.post请求的angular控制器,但我没有得到响应,服务运行良好,因为需要使用postman进行测试 我需要在HTLM表中显示来自WS的数据(我知道如何执行此部分),当加载页面时,我将以变量名“data”发送请求正文,以变量名“config”发送头配置,并将http.post调用发送到我的WS的URL 我是angular的新手,所以我不知道我是否遗漏了什么,我还想在控制台中打印响应,以测试它是否返回了我所期望的结果 我从web上找到的一个示例中获取了这段代码,并对其进行了修改,在该示例中有一个按钮,用于调用SendData()函数,但我不需要按钮,必须在加载页面时进行调用 这是控制器代码Javascript 从角度post方法获取数据,javascript,angularjs,Javascript,Angularjs,我有一个带有http.post请求的angular控制器,但我没有得到响应,服务运行良好,因为需要使用postman进行测试 我需要在HTLM表中显示来自WS的数据(我知道如何执行此部分),当加载页面时,我将以变量名“data”发送请求正文,以变量名“config”发送头配置,并将http.post调用发送到我的WS的URL 我是angular的新手,所以我不知道我是否遗漏了什么,我还想在控制台中打印响应,以测试它是否返回了我所期望的结果 我从web上找到的一个示例中获取了这段代码,并对其进行了
.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">
感谢您的时间和帮助。您需要在控制器中调用$scope.SendData()函数:
.controller("HttpGetTestController", function ($scope, $http) {
$scope.SendData = function () {
//your code ...
}
//then the calling
$scope.SendData();//here
}
是否
http://whateverurl/
支持?如果没有,由于浏览器内置的同源策略限制,您将无法从其他域调用它。这就解释了为什么您的请求是从Postman发出的,而不是在浏览器中使用AJAX。只需查看浏览器的控制台,您就会看到警告,说明请求已被阻止。服务器必须启用CORS头,您必须添加$httpProvider.defaults.useXDomain=true;事实上,我在一个本地网络上工作,我检查我的控制台,发现里面什么都没有(@AlbertCyberhulk,我应该在哪里添加$httpProvider?因为我和我的头在配置变量中键入。你能在浏览器的“网络”选项卡中看到发送的请求吗?嗨@AhmedAbdelraouf我添加了那一行,但什么也没有发生…:(您是否在html文件中包含了控制器js文件?是的,实际上我有另一个控制器,但其中一个正在读取json,我这样做是为了测试angular是否工作正常,然后我创建此控制器以使用WS,但什么都没有发生,我可以意识到我的代码是否正确?尝试添加调试器;或者在c开头添加断点。)这意味着html知道div块属于该角度控制器。不管它的post或get是否使用PostDataResponse,因此当请求成功时,对象将被初始化,并且绑定将在{{x.Name}{{x.Country}工作