2016-07-11 13 views
0

さて、私は可能な限り簡単にこれを試してみます。 PostmanでそれらをテストしてChromeで調べるだけで、正常にget、post、put、deleteが正常に動作するように、RESTful APIを実行しているノードとエクスプレスとmySQLサーバーをセットアップしました。これは現在、私のマシン上ではすべてローカルで実行されます。私は、REST APIを実行しているUbuntuボックスを持っています。私がクロムで照会すると、私が働いているフィールドの期待される出力が得られます。RESTful APIが単純なAngularJSコントローラで表示されない

(例リクエスト "http://192.168.239.130:1337/api/plates/")これが私に与えられます。

{ 
"Plates": [ 
    { 
     "lot_number": "P234", 
     "plate_number": "NGE-781", 
     "date_and_time": "2016-07-08T21:14:31.000Z" 
    }, 
    { 
     "lot_number": "P234", 
     "plate_number": "FEB-423", 
     "date_and_time": "2016-07-08T21:26:08.000Z" 
    }, 
    { 
     "lot_number": "P234", 
     "plate_number": "SEB-623", 
     "date_and_time": "2016-07-08T21:26:20.000Z" 
    }, 
    { 
     "lot_number": "P234", 
     "plate_number": "ZEB-683", 
     "date_and_time": "2016-07-08T21:30:59.000Z" 
    }, 
    { 
     "lot_number": "P234", 
     "plate_number": "FEW-083", 
     "date_and_time": "2016-07-08T21:31:57.000Z" 
    }, 
    { 
     "lot_number": "L323", 
     "plate_number": "JEQ-324", 
     "date_and_time": "2016-07-11T18:59:03.000Z" 
    } 
    ] 
} 

これは、画面に表示されるサンプルのmySQLデータの一部です。私が望んでいたように働いています。私の問題は、角度のスクリプトを使って単純なhtmlページを作って、それを印刷したくないときです。私が得るのは空白のページだけです。私は他のapiのオンラインで自分のコードを実行しようとしました。私は、以下に掲載する同一のコードを印刷しても問題ありません。

<!DOCTYPE html> 
<html> 
</style> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="platesCtrl"> 

{{plates}} 

</div> 

<script> 
var app = angular.module('myApp', []); 
app.controller('platesCtrl', function($scope, $http) { 
    $http.get("http://192.168.239.130:1337/api/plates") 
    .then(function (response) {$scope.plates = response.data;}); 
}); 
</script> 

</body> 
</html> 

私は他のAPIのオンライン作品でこれを実行している言ったように....鉱山は、それはローカルであることと関係している何かを、それはありませんか?私が言ったように、上記のアドレスを.... api/plates APIにブラウザでも問題なく実行でき、JSONを吐き出すことができます。

ありがとうございました

ありがとうございます。

+1

Chromeのネットワークタブは何を表していますか?これはおそらくクロスドメインの問題です。 –

+0

約束のエラーコールバックを使用するとエラーメッセージが表示されますか? 'app.controller( 'platesCtrl'、関数($範囲、$ HTTP){$ HTTPに.get( "http://192.168.239.130:1337/api/plates") .then( 関数(応答){ $ scope.plates = response.data; }、 関数(誤差){ はconsole.log( '応答エラー:'、エラー); }、 ); }); '' ' – Anthony

+0

だから私はコンソールが言ったことを完全に逃した。 'Access-control-Originを許可する'がありません。 – HardLuckHank

答えて

0

申し訳ありませんが、私は自分自身でこれに答えるでしょう。他のいくつかのユーザーからのコメントからの考え。私はコンソールをチェックし、クロスドメインの問題があり、「アクセス制御許可の原点」がないというエラーが表示されました。私は私のAPI呼び出し関数に入り、すべてのAPI呼び出しに

res.header("Access-Control-Allow-Origin", "*"); 

を追加して修正することができました。今のところこれは機能しますが、私は同じことを実装するよりエレガントな方法があると確信しています。

ありがとうございました。

関連する問題