1

こんにちは、AngularJS は初めてです。私はこのチュートリアルから始めました。チュートリアル$http.getでは、メソッドは JSON ファイルを呼び出しています。私の場合、常に 404 エラーが発生します。JSON ファイルの場所も、HTML ファイルに対して相対的です。しかし、常に同じエラーが発生します。

これが私のコードです: index.html:

<!doctype html>
<html lang="en" ng-app>
<head>
<meta charset="utf-8">
  <title>My HTML File</title>
  <script src="angular.js"></script>
  <script src="controllers.js"></script>
</head>
<body ng-controller="PhoneListCtrl">
 Total Number of phones: {{phones.length}}
 Search: <input ng-model="query">
 Sort by:
<select ng-model="orderProp">
  <option value="name">Alphabetical</option>
  <option value="age">Newest</option>
</select>
<div>
  <ul>
    <li ng-repeat="phone in phones | filter:query | orderBy:orderProp">
  {{phone.name}}
  <p>{{phone.snippet}}</p>
    </li>
  </ul>
</div>

</body>
</html>

controllers.js

function PhoneListCtrl($scope, $http) {
$http.get('phones.json').success(function(data){
$scope.phones = data;
}).
error(function(data, status, headers, config) {
alert('data = ' + data + ' status = ' + status);
});
}

同じディレクトリ (index.html、controllers.js、phones.json) 内のすべてのファイル。ここで何が欠けていますか?404 エラーがスローされるのはなぜですか?

以下は、添付のブラウザのスクリーンショットです: 以下は、添付のブラウザのスクリーンショットです。1

4

5 に答える 5

2

ファイルが同じディレクトリにあるかどうかは問題ではありません。ファイルをホストし、GET、POST PUT、およびその他の http 要求に応答するサーバーが必要です。

チュートリアルの最初のステップでは、サーバーをセットアップする必要があります。チュートリアルの「コードの操作」セクションを参照してください。サーバーのセットアップに関する詳細情報を取得するには、そのステップのコメント/ディスカッションも参照してください。

nodeJs を使用するのが難しすぎると思われる場合は、単純な Python サーバーでも問題ありません。Apache / WAMP / XAMP サーバーも使用できます。

サーバーをセットアップしないと、http 要求が失敗するため、チュートリアルで説明されているアプリケーションの構築に取り組むことはできません。したがって、404 エラーは明らかです。

于 2013-08-29T08:41:03.437 に答える
0

問題はAngularとは関係ありません。つまり、あなた(またはスクリプト)が思っている場所にないファイルをリクエストしていることを意味します。
使用しているブラウザーに応じて、たとえばクロムで、インスペクターを開き (右クリックして要素を検査)、404 エラーでコンソールをチェックインし、アプリケーションがフェッチしようとしているファイルのフルパスを確認してから、サーバーをチェックインします。実際にそのファイルがそのディレクトリにあることを確認してください。アプリケーションによって行われたすべてのリクエストをネットワーク タブで確認して、問題の考えられる原因に関する詳細情報を取得することもできます。
サーバーを使用していないことがわかりました。アドレスバーには次のようにfile:///path/to/index.html表示され、404 エラーのあるファイルにはおそらく. 編集:404のファイルがfile:///angular.jsfile:///path/to/angular.js
file:///angular.jsこれは、ブラウザが現在のディレクトリではなくシステムのルート ディレクトリにあるファイルを探していることを意味し、<script src="./angular.js"></script>. また、への ajax リクエストでクロス オリジン リクエスト
の問題が発生 すると思います。そのため、代わりにローカル サーバーをセットアップすることをお勧めします。phones.json

于 2013-08-29T13:49:23.563 に答える