意外的令牌<在HTML的第一行

sim*_*aur 60 html javascript syntax-error uncaught-exception

我有一个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>
Run Code Online (Sandbox Code Playgroud)

错误说:

Uncaught SyntaxError: Unexpected token <    core.js: 1
Run Code Online (Sandbox Code Playgroud)

它显示了在错误<!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);
            });
    };*/

});
Run Code Online (Sandbox Code Playgroud)

它也给了我 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.

这是快照:

显示app.html而不是core.js

此外,如图中所示,当我点击时index.html,它显示app.html.但是,我没有任何已命名的文件,index.htmlapp.html默认加载而不是index.html.

我试过添加/删除,type="text/javascript"但也没有帮助.

此外,在获取请求时返回状态200 core.js.

状态:200

可能有什么问题?

Joh*_*ers 62

您的页面引用了一个Javascript文件/Client/public/core.js.

可能无法找到此文件,而是生成网站的首页或HTML错误页面.这是一个非常常见的问题,例如.在Apache服务器上运行的网站,默认情况下路径被重定向到index.php.

如果是这种情况,请确保/Client/public/core.js在脚本标记中替换<script type="text/javascript" src="/Client/public/core.js"></script>正确的文件路径,或将丢失的文件core.js放在位置/Client/public/以修复错误!

如果您确实找到了一个名为的文件core.js,/Client/public/并且浏览器仍然生成HTML页面,请检查文件夹和文件的权限.这些中的任何一个都可能缺少适当的权限.

  • @RobG:这取决于您的服务器配置。在 Apache 服务器上,当没有找到文件时,引用所有路径到“index.php”是很常见的。在这种情况下,丢失的 .js 文件将替换为您网站首页的内容或 404 错误页面,这同样取决于您的配置。 (2认同)

Ale*_*lex 7

就我而言,由于一行而出现此错误

<script src="#"></script> 
Run Code Online (Sandbox Code Playgroud)

Chrome 尝试将当前 HTML 文件解释为 javascript。