web-dev-qa-db-fra.com

Jeton inattendu <dans la première ligne du code HTML

J'ai un fichier 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>

L'erreur dit:

Uncaught SyntaxError: Unexpected token <    core.js: 1

Il montre l'erreur à <!doctype html> du app.html.

core.js ressemble à ceci:

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);
            });
    };*/

});

Cela me donne aussi 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)

De plus, en console, lorsque je clique sur core.js, il affiche le contenu de app.html et le nomme core.js.

Voici l'instantané:

Showing app.html instead of core.js

En outre, comme dans l'image, lorsque je clique sur index.html, il affiche app.html. Cependant, je n'ai aucun fichier nommé index.html et je charge app.html par défaut au lieu de index.html.

J'ai essayé d'ajouter/supprimer type="text/javascript" mais aucune aide pour cela non plus.

En outre, le statut 200 est renvoyé lors de la demande d'obtention de core.js.

Status: 200

Quel est le problème?

51
simi kaur

Votre page référence un fichier Javascript à /Client/public/core.js.

Ce fichier ne peut probablement pas être trouvé, produisant à la place la page d'accueil du site Web ou une page d'erreur HTML. Ceci est un problème assez commun pour par exemple. les sites Web fonctionnant sur un serveur Apache où les chemins sont redirigés par défaut vers index.php.

Si c'est le cas, assurez-vous de remplacer /Client/public/core.js dans votre balise de script <script type="text/javascript" src="/Client/public/core.js"></script> par le chemin de fichier correct ou de placer le fichier manquant core.js à l'emplacement /Client/public/ pour corriger votre erreur!

Si vous trouvez déjà un fichier nommé core.js à /Client/public/ et que le navigateur continue à générer une page HTML, vérifiez les autorisations du dossier et du fichier. L'un ou l'autre peut ne pas avoir les autorisations appropriées.

56
John Slegers

Vérifiez votre encodage, j'ai obtenu quelque chose de similaire une fois à cause de la nomenclature.

Assurez-vous que le fichier core.js est encodé dans utf-8 sans BOM

2
seg-s

J'ai rencontré cette erreur avec mon site WordPress, mais j'ai constaté qu'il y avait deux index dans les sources de mes outils de développement. 

Erreur de Chrome Developer Tool Je pensais donc que s’il ya deux index commençant à la première ligne de code, il y a réplication et conflit. Alors j'ai pensé que c'était peut-être ma minification HTML de mon plugin de mise en cache.

J'ai donc désactivé le paramètre minify HTML et supprimé mon cache. Et pouf! Ça a marché!

2
Carl

Eh bien ... j'ai retourné trois fois Internet à l'envers, mais je n'ai rien trouvé qui puisse m'aider car il s'agissait d'un projet Drupal plutôt que d'autres scénarios décrits par les gens.

Mon problème était que quelqu'un dans le projet a ajouté un js dont l'adresse était: <script src="http://base_url/?p4sxbt"></script> et qui était attaché de la manière suivante:

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

J'espère que cela aidera quelqu'un à l'avenir.

1
Roy Segall

J'ai eu ce problème dans une application ASP.NET, en particulier un Web Forms.

Je forçais une redirection dans Global.asax , mais j'ai oublié de vérifier si la demande concernait des ressources telles que css, javascript, etc. Il me suffisait d'ajouter les vérifications suivantes:

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

Je forçais les utilisateurs connectés qui n'avaient pas changé leurs mots de passe depuis longtemps à être redirigés vers la page change-password.aspx. Je crois qu'il existe un meilleur moyen de vérifier cela, mais pour l'instant, cela a fonctionné. Si je trouve une meilleure solution, je modifie ma réponse.

0
Alisson

J'ai eu le même problème. J'ai publié l'application angular/core sur iis.

Changer l’identité du pool d’applications a résolu mon problème. Maintenant, l'identité est LocalSystem

0
S.Sire

Dans mon cas, j'ai eu cette erreur à cause d'une ligne

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

Chrome a alors tenté d'interpréter le fichier HTML actuel en javascript.

0
Alex

Pour moi, il s'agissait d'un cas où le chemin du script ne serait pas chargé - je l'avais mal lié. Vérifiez vos fichiers de script - même si aucune erreur de chemin n'est signalée - chargez-les réellement.

0
Antony

Nous avons eu le même problème il y a quelque temps, lorsqu'un site a soudainement commencé à donner cette erreur. La raison était qu'un js include était temporairement remarqué avec un # (c'est-à-dire src = "#./Js ...") 

0
Mr. de Silva