2015-07-21 13 views
33

Ho un file HTML:token imprevisto <nella prima riga di 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'errore dice:

Uncaught SyntaxError: Unexpected token < core.js: 1 

Esso mostra l'errore al <!doctype html> del app.html.

core.js assomiglia a questo:

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

}); 

Mi dà anche 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)

Inoltre, in consolle, quando scatto a core.js, che mostra il contenuto della app.html e il nome core.js.

Ecco l'istantanea:

Showing app.html instead of core.js

Inoltre, come nell'immagine, quando clicco index.html, mostra app.html. Tuttavia, non ho alcun file denominato index.html e carico app.html per impostazione predefinita anziché index.html.

Ho provato ad aggiungere/rimuovere type="text/javascript" ma nessun aiuto neanche con quello.

Inoltre, lo stato 200 viene restituito su richiesta per core.js.

Status: 200

Che cosa potrebbe essere sbagliato?

+5

Qual è il contenuto di 'core.js'? –

+0

Il problema non è nell'HTML; è in core.js. Prova ad ottenere la versione più recente (supponendo che core.js sia un framework, altrimenti controlla il tuo codice) – squill25

+1

'core.js' contiene anche qualcosa come" 404 - File not Found "? – Xufox

risposta

39

La tua pagina fa riferimento a un file Javascript /Client/public/core.js.

Probabilmente questo file non può essere trovato, producendo invece la pagina iniziale del sito Web o una pagina di errore HTML. Questo è un problema abbastanza comune per es. siti Web in esecuzione su un server Apache in cui i percorsi vengono reindirizzati per impostazione predefinita su index.php.

Se questo è il caso, assicuratevi di sostituire /Client/public/core.js nel tag script <script type="text/javascript" src="/Client/public/core.js"></script> con il percorso di file corretto o mettere il file mancante core.js a posizione /Client/public/ per correggere il vostro errore!

Se si trova già un file denominato core.js allo /Client/public/ e il browser produce comunque una pagina HTML, controllare le autorizzazioni per la cartella e il file. Ad ognuno di questi potrebbero mancare le autorizzazioni appropriate.

+1

@RobG: Dipende dalla configurazione del server. Su un server Apache, è piuttosto comune fare riferimento a tutti i percorsi a "index.php" quando non viene trovato alcun file. In tal caso, i file .js mancanti vengono sostituiti con il contenuto della prima pagina del tuo sito web o con una pagina di errore 404, sempre a seconda della configurazione. –

+0

Ok, la tua risposta lo spiega ora. ;-) – RobG

+0

@JohnSlegers: Si prega di verificare l'aggiornamento. –

1

Controllare la codifica, ho ottenuto qualcosa di simile una volta a causa della distinta base.

Assicurarsi che il file Core.js è codificato in UTF-8 senza BOM

+0

Controllare l'aggiornamento –

0

Beh ... ho girato a Internet a testa in giù tre volte, ma non ho trovato nulla che mi potrebbero aiutare perché era un Progetto Drupal piuttosto che altri scenari descritti da persone.

Il mio problema era che qualcuno nel progetto ha aggiunto un js, che il suo discorso era: <script src="http://base_url/?p4sxbt"></script> ed è stato attaccato in questo modo:

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

Spero che questo vi aiuterà qualcuno in futuro.

Problemi correlati