【问题标题】:How to get json data from other server in angular using HTTPget correctly?如何正确使用 HTTPget 从其他服务器获取 json 数据?
【发布时间】:2016-06-12 04:16:16
【问题描述】:

我可以访问其他服务器上的某些数据库,但我仍然无法获取此 json 的数据,它显示 cors 并显示 2 个错误 XHR 加载失败:GETXMLHttpRequest 无法加载: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>

【问题讨论】:

  • 您尝试访问的url 与您的域不同,因此被拒绝。您需要配置服务器以允许您的域。
  • 该服务器允许我的域

标签: angularjs json http http-get


【解决方案1】:

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

你需要检查你的标题中是否有Access-Control-Allow-Origin,如果没有,你应该启用它,我不知道服务器使用的是什么技术,但是有很多关于不同技术的指南@987654321 @。

如果标头确实存在并且接受了您的域,这可能是因为您的浏览器不支持 CORS,您可以通过 caniuse 检查您使用的浏览器是否。

【讨论】:

  • 服务器启用了CORS,浏览器也支持CORS
【解决方案2】:

这里列出的类似问题,

Cross domain XHR failing

如果是加载json数据,推荐使用$http.jsonp

你也可以考虑这样写http拦截器

XHR Interceptor in an AngularJS web app

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2022-11-18
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多