【问题标题】:Http get response blank pageHttp获取响应空白页
【发布时间】:2017-11-16 13:49:57
【问题描述】:

我正在尝试创建轻量级的 Angularjs 应用程序。我正在通过 irb cli 运行 api 服务器,它在端口 4567 上运行。当我运行 bundle exec ruby​​.rb 时,我可以确认地址上有数据:http://localhost:4567/api/v1/companies:

[
  {"id": "1",
   "name": "A"
  },
  {
    "id": "2",
    "name": "B",
  } 
]

我已尝试使用此代码 (hello.js):

var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
        $scope.company=[];
      $http.get("http://localhost:4567/api/v1/companies")
      /*$http.get("http://localhost/fake.json")*/
    .then(function(response) {
        $scope.company = response.data;

    });
});

HTML:

<html>
    <head>
        <title>Hello AngularJS</title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
        <script src="hello.js"></script>
    </head>

        <body>
            <div ng-app="myApp" ng-controller="customersCtrl">
            <ul>
                    <li ng-repeat="x in company">
                        {{ 'name: ' + x.name + ',  id:' + x.id }}
                    </li>
            </ul>
            </div>
        </body>
    </html>

问题是,如果我将 url 更改为评论中的“http://localhost/fake.json”,我会看到数据响应清晰。但是如果我使用本地网络服务器,我什么也看不到。是否存在某种权限问题或其他问题。

【问题讨论】:

  • 控制台是否出现错误?或者在您的后端服务日志中,
  • “我正在通过 irb cli 运行 api 服务器”- 你是什么意思?由于这是标记为 ruby​​-on-rails 我猜你正在使用 Rails。您使用 bin/rails server 命令而不是通过 irb 启动 rails 服务器。
  • 请查看控制台对错误的说明,我不确定,但如果您在控制台中看到数据,我们可以考虑运行摘要循环。但在此之前,在页面上看不到任何数据的情况下,看看控制台是否没有错误。
  • 我是用 Ruby 做的,但在 Sinatra 平台上,我已经删除了标签

标签: javascript angularjs ruby


【解决方案1】:

使用success 回调而不是then 看到这个document

$scope.company=[];
      $http.get("http://localhost:4567/api/v1/companies")
      /*$http.get("http://localhost/fake.json")*/
    .success(function(response) {
        $scope.company = response.data;// response or response.data is depend your service response    
    }).error(function(errorStatus)
    {
      //code
    });

【讨论】:

    【解决方案2】:

    问题是 sinatra-access-control-allow-origin,我找到了解决方案:Sinatra access-control-allow-origin for sinatra public folder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 2022-12-14
      • 2022-06-28
      相关资源
      最近更新 更多