0

私はプログラミングを学び始めたばかりで、Adam Freeman による Pro AngularJS を読んでいます。私が自分で作成した本で著者が示している例の 1 つに従っています。Xampp サーバーがあり、データは Deployed にあります。両方のサーバーは仮想 XP マシン (VMWare) にあります。データ ( http://192.168.1.40:5500/cars) は次のようになります。

[{
"brand": "Honda",
"color": "Blue",
"price": 20000,
"year": 2010,
"id": "95d78d0090f3ab62"
}, {
"brand": "Kia",
"color": "Green",
"price": 10000,
"year": 2013,
"id": "47e180e828b2297a"
}, {
"brand": "Toyota",
"color": "Black",
"price": 22000,
"year": 2013,
"id": "19ab0a96f80c29ab"
}, {
"brand": "Buick",
"color": "Silver",
"price": 25000,
"year": 2012,
"id": "a9a217f2a7381994"
}, {
"brand": "Ferrari",
"color": "Red",
"price": 250000,
"year": 2014,
"id": "0abb8a0179f95a17"
}, {
"brand": "Porche",
"color": "Blue",
"price": 60000,
"year": 2012,
"id": "f76556eb6aa7981e"
}]

ブラウザで URL に入力されたデータにアクセスする際に問題はありません。

関連する HTML は次のようになります。

 <tr ng-repeat="item in data | orderBy:'brand' ">
            <td>{{item.brand}}</td>
            <td>{{item.color}}</td>
             <td>{{item.year}}</td>
            <td>{{item.price | currency}}</td>

        </tr>

私の AngularJS コードは次のようになります。

angular.module("demo")

.constant("dataUrl", "http://192.168.1.40:5500/cars")
.controller("demoCtrl", function ($scope, $http, dataUrl) {
//$http.defaults.useXDomain = true;
    $scope.data = {};
    $http.get(dataUrl)
        .success(function (data) {

            $scope.data = data;
        })
        .error(function (error) {
            $scope.data.error = error;
        });
  }); 

これは私が抱えている問題です。IE9 でページにアクセスすると、完全に機能します。FireFox を使用すると、何も表示されず、エラーも何も表示されません。Chrome ではデータが読み込まれず、次のエラーが表示されます。

XMLHttpRequest cannot load http://192.168.1.40:5500/cars. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.1.40' is therefore not allowed access.

私が述べたように、私はこれに非常に慣れていません.IEで動作し、他のブラウザでは動作しないことは非常に不可解です. また、デプロイされたデータの代わりに「json」ファイルを使用して同じコードを試してみましたが、すべてのブラウザーで動作します。ここで何をすべきか考えていますか?ありがとう!

IE9 のページ ここに画像の説明を入力

4

1 に答える 1

1

展開されたバージョンを更新する必要があります-展開されたインストールフォルダーのコマンドプロンプトからnpm updateを実行します-管理者権限でcmdプロンプトを使用して実行する必要がありました。

ここに良い答えがあります:

デプロイ済み - AngularJS CORS を介して取得されたデータ

于 2014-12-05T16:53:31.897 に答える