web-dev-qa-db-ja.com

HTMLの最初の行にある予期しないトークン<

HTMLファイルがあります:

<!DOCTYPE HTML>
<html lang="en-US" ng-app="Todo">
<head>
    <meta charset="UTF-8">
    <title>DemoAPI</title>

  <meta name="viewport">

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>

<link rel="stylesheet" href="./Client/css/styling.css" />
<script type="text/javascript" src="core.js"></script>

</head>

エラーは言います:

Uncaught SyntaxError: Unexpected token <    core.js: 1

<!doctype html>app.htmlでエラーを示しています。

core.jsは次のようになります。

angular.module('Todo', [])

.controller('mainController', function($scope, $http)
{
    $scope.formData = {};

    // get all and show them
    $http.get('/musicians')
        .success(function(data) {
            $scope.todos = data;
            console.log(data);
        })
        .error(function(data) {
            console.log('Error: ' + data);
        });

        //get with an id
        $scope.getOneTodo = function() {
        $http.get('/musicians' + id)
            .success(function(data) {
                $scope.todos = data;
                      console.log(data);
            })
            .error(function(data) {
                console.log('Error: ' + data);
            });
    };
      // send the text to the node API
    $scope.createTodo = function() {
        $http.post('/musicians', $scope.formData)
            .success(function(data) {
                $scope.formData = {}; // clear the form 
                $scope.todos = data;
                console.log(data);
            })
            .error(function(data) {
                console.log('Error: ' + data);
            })
    };

    // delete 
    $scope.deleteTodo = function(id) {
        $http.delete('/musicians' + id)
            .success(function(data) {
                $scope.todos = data;
                      console.log(data);
            })
            .error(function(data) {
                console.log('Error: ' + data);
            });
    };

    /*
    $scope.updateTodo = function(id) {
        $http.delete('/musicians' + id)
            .success(function(data) {
                $scope.todos = data;
                      console.log(data);
            })
            .error(function(data) {
                console.log('Error: ' + data);
            });
    };*/

});

また、Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=Todo&p1=Error%3A%2…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381)を提供します

また、コンソールでcore.jsをクリックすると、app.htmlの内容が表示され、core.jsという名前が付けられます。

スナップショットは次のとおりです。

Showing app.html instead of core.js

また、画像のように、index.htmlをクリックすると、app.htmlが表示されます。ただし、index.htmlという名前のファイルはなく、デフォルトではapp.htmlではなくindex.htmlをロードします。

type="text/javascript"を追加または削除しようとしましたが、それも助けになりませんでした。

また、core.jsのget要求でステータス200が返されます。

Status: 200

何が悪いのでしょうか?

56
simi kaur

ページは、/Client/public/core.jsのJavascriptファイルを参照しています。

このファイルはおそらく見つからず、代わりにWebサイトのフロントページまたはHTMLエラーページが生成されます。これは非常に一般的な問題です。デフォルトでパスがindex.phpにリダイレクトされるApacheサーバーで実行されているWebサイト。

その場合は、スクリプトタグ/Client/public/core.js<script type="text/javascript" src="/Client/public/core.js"></script>を正しいファイルパスに置き換えるか、欠落しているファイルcore.jsを場所/Client/public/に置いてエラーを修正してください。

core.js/Client/public/という名前のファイルが既にあり、ブラウザーがHTMLページを生成する場合は、フォルダーとファイルのアクセス許可を確認してください。これらのいずれかが適切な許可を欠いている可能性があります。

58
John Slegers

WordPressサイトでこのエラーが発生しましたが、開発ツールのソースに2つのインデックスが表示されていることがわかりました。

Chrome Developer Tool Error だから、コードの最初の行から始まるインデックスが2つある場合、複製があり、互いに競合していると考えていました。だから、多分それは私のキャッシュプラグインツールからのHTMLのミニファイだと思った。

そこで、HTMLミニファイ設定をオフにして、キャッシュを削除しました。ふざけん!出来た!

3
Carl

エンコーディングを確認してください。BOMのおかげで、似たようなものが得られました。

Core.jsファイルがutf-8でエンコードされていることを確認してくださいBOMなし

2
seg-s

ASP.NETアプリケーション、特にWebフォームでこの問題が発生しました。

Global.asaxでリダイレクトを強制していましたが、リクエストがcss、javascriptなどのリソースに対するものかどうかを確認するのを忘れていました。次のチェックを追加する必要がありました。

VB.NET

If Not Response.IsRequestBeingRedirected _
    And Not Request.Url.AbsoluteUri.Contains(".WebResource") _
    And Not Request.Url.AbsoluteUri.Contains(".css") _
    And Not Request.Url.AbsoluteUri.Contains(".js") _
    And Not Request.Url.AbsoluteUri.Contains("images/") _
    And Not Request.Url.AbsoluteUri.Contains("favicon") Then
        Response.Redirect("~/change-password.aspx")
End If

長い間パスワードを変更していなかったログに記録されたユーザーを、change-password.aspxページにリダイレクトするように強制していました。これをチェックするより良い方法があると思いますが、今のところ、これでうまくいきました。より良い解決策を見つけたら、答えを編集します。

1
Alisson

私の場合、ラインのためにこのエラーが発生しました

<script src="#"></script> 

Chromeは現在のHTMLファイルをjavascriptとして解釈しようとしました。

1
Alex

まあ...私はインターネットを3回ひっくり返しましたが、人々が説明した他のシナリオではなくDrupalプロジェクトだったので、私を助ける何かを見つけませんでした。

私の問題は、プロジェクト内の誰かが彼のアドレスであるjsを追加したことでした:<script src="http://base_url/?p4sxbt"></script>そして、それはこの方法で添付されました:

drupal_add_js('',
    array('scope' => 'footer', 'weight' => 5)
  );

これが将来誰かを助けることを願っています。

1
Roy Segall

サイトで突然このエラーが発生し始めた同じ問題がありました。その理由は、jsインクルードが一時的に#でリマークされたためです(つまり、src = "#。/ js ...")。

1
Mr. de Silva

同じ問題がありました。 iisで角度/コアアプリケーションを公開しました。

アプリケーションプールのIDを変更することで問題が解決しました。アイデンティティはLocalSystemです

0
S.Sire

私にとって、これはスクリプトパスが読み込まれない場合でした-私は間違ってリンクしていました。パスエラーが報告されない場合でも、スクリプトファイルを確認して、実際にロードします。

0
Antony