Javascript 从角度post方法获取数据

Javascript 从角度post方法获取数据,javascript,angularjs,Javascript,Angularjs,我有一个带有http.post请求的angular控制器,但我没有得到响应,服务运行良好,因为需要使用postman进行测试 我需要在HTLM表中显示来自WS的数据(我知道如何执行此部分),当加载页面时,我将以变量名“data”发送请求正文,以变量名“config”发送头配置,并将http.post调用发送到我的WS的URL 我是angular的新手,所以我不知道我是否遗漏了什么,我还想在控制台中打印响应,以测试它是否返回了我所期望的结果 我从web上找到的一个示例中获取了这段代码,并对其进行了

我有一个带有http.post请求的angular控制器,但我没有得到响应,服务运行良好,因为需要使用postman进行测试

我需要在HTLM表中显示来自WS的数据(我知道如何执行此部分),当加载页面时,我将以变量名“data”发送请求正文,以变量名“config”发送头配置,并将http.post调用发送到我的WS的URL

我是angular的新手,所以我不知道我是否遗漏了什么,我还想在控制台中打印响应,以测试它是否返回了我所期望的结果

我从web上找到的一个示例中获取了这段代码,并对其进行了修改,在该示例中有一个按钮,用于调用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">


感谢您的时间和帮助。

您需要在控制器中调用$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}工作