私はプログラミングを学び始めたばかりで、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 のページ