如何正确使用HTTPget从角度获取其他服务器的json数据?

时间:2016-02-29 07:41:42

标签: angularjs json http http-get

我可以访问其他服务器上的某个数据库,但我仍然无法获取此json的数据,它显示了cors并显示2个错误 XHR加载失败:GET XMLHttpRequest无法加载:CORS ,但我确实可以访问该服务器,它也会在发布数据时显示cors但是有一些代码错误而不是服务器接受问题。这次获取数据也是我想我身边的一些代码错误

{
  "emp": [
    {
      "BNK": "Rock",
      "GPIs": [
        "9233333456"
      ]
    },
    {
      "BNK": "Jack",
      "GPIs": [
        "9234343434",
        "9289989898"
        ]
    }
  ],
"status": "ok"
}



 <script>
  var countryApp = angular.module('countryApp', []);
  countryApp.controller('CountryCtrl', function ($scope, $http){
    $http.get('http://oher_server_url').success(function(data) {
      console.log(data);
      $scope.dta = data.emp;
    });
  });
</script>

  <table border=1>
                <tr>
                <th>type_BNK</th>
                <th>type_GPIs</th>
                </tr>
                <tr ng-repeat="x in dta ">
                <td>{{x.BNK}}</td>
                <td>{{x.GPIs}} </td>
  </table>

2 个答案:

答案 0 :(得分:1)

您似乎没有在服务器上启用跨源资源共享,因此您的网页无法访问服务器,因此很难确定问题是否存在于服务器中服务器或您的网页。

你需要检查标题中是否有Access-Control-Allow-Origin,如果你没有,你应该启用它,我不知道服务器正在使用什么技术但是有很多差异技术指南here

如果标题确实存在且已接受您的域名,可能是因为您的浏览器不支持CORS,您可以在caniuse检查您使用的浏览器。

答案 1 :(得分:0)

此处列出的similler问题,

Cross domain XHR failing

如果要加载json数据,建议使用MATCH (bank:Bank)-[:PARENT_OF]->(bank2:Bank) Return (bank.id),collect(bank2.id)

您也可以考虑像这样编写http拦截器

XHR Interceptor in an AngularJS web app