93

I have an HTML file :

<!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>

The error says:

Uncaught SyntaxError: Unexpected token <    core.js: 1

It shows the error at <!doctype html> of the app.html.

core.js looks like this:

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

});

It also gives me 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)

Besides, in console, when I click at core.js, it shows the contents of app.html and name it core.js.

Here is the snapshot:

Showing app.html instead of core.js

Also, as in the image, when I click index.html, it shows app.html. However, I do not have any file that is named index.html and I load app.html by default instead of index.html.

I have tried adding/removing type="text/javascript" but no help with that either.

Also, status 200 is returned on get request for core.js.

Status: 200

What might be wrong?

Francis Rodrigues
  • 1,470
  • 4
  • 25
  • 61
simi kaur
  • 1,257
  • 3
  • 15
  • 19

13 Answers13

91

Your page references a Javascript file at /Client/public/core.js.

This file probably can't be found, producing either the website's frontpage or an HTML error page instead. This is a pretty common issue for eg. websites running on an Apache server where paths are redirected by default to index.php.

If that's the case, make sure you replace /Client/public/core.js in your script tag <script type="text/javascript" src="/Client/public/core.js"></script> with the correct file path or put the missing file core.js at location /Client/public/ to fix your error!

If you do already find a file named core.js at /Client/public/ and the browser still produces a HTML page instead, check the permissions for folder and file. Either of these might be lacking the proper permissions.

John Slegers
  • 45,213
  • 22
  • 199
  • 169
  • 3
    @RobG : It depends on your server config. On an Apache server, it's pretty common to reference all paths to "index.php" when no file is found. In that case, missing .js files are replaced with the content of your website's frontpage or a 404 error page, again depending on your config. – John Slegers Jul 21 '15 at 02:50
  • Ok, your answer explains that now. ;-) – RobG Jul 21 '15 at 03:27
  • @simikaur : So did you fix the initial problem or didn't you? It's not clear to me what exactly is happening now! Also, could you please post your code on https://jsfiddle.net/ or https://jsbin.com/? That makes it a lot easier for us to see what's going on! – John Slegers Jul 21 '15 at 11:13
  • My machine was lagging and I accidentally moved my Scripts folder into another folder. – RIanGillis Nov 05 '16 at 12:54
  • I am doing an asp.net mvc 5 website and this happened to me because I was messing around and pasted in a line into my web config file which caused all css mime types to be text/html and all my js files to -yes- contain the entire site in them, of course with 100% errors as you'd expect. – Vasily Hall Apr 24 '17 at 19:40
  • I got the same error and this fixed it for me. My site runs on IIS and for some reason suddenly the server couldn't find the js file. I just moved it to another folder and then it was fine. – aspnetdeveloper Jul 25 '17 at 16:24
  • Genius! Saved hours of frustration. It was simply a missing file for me. Thank you :) – Anjana Silva Oct 15 '18 at 21:54
  • I had this issue in angular 6 app , it was due to browser cache, incognito mode solved it. – Kugan Kumar Jul 26 '21 at 15:42
  • Thank you very much! I didn't notice that the js file was unreachable...you saved me from a bad headache – MaxBauer416 Apr 01 '22 at 21:51
7

In my case I got this error because of a line

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

Chrome tried to interpret the current HTML file then as javascript.

Alex
  • 32,506
  • 16
  • 106
  • 171
3

I experienced this error with my WordPress site but I saw that there were two indexes showing in my developer tools sources.

Chrome Developer Tool Error So I had the thought that if there are two indexes starting at the first line of code then there's a replication and they're conflicting with each other. So I thought that then perhaps it's my HTML minification from my caching plugin tool.

So I turned off the HTML minify setting and deleted my cache. And poof! It worked!

Carl
  • 61
  • 4
1

Check your encoding, i got something similar once because of the BOM.

Make sure the core.js file is encoded in utf-8 without BOM

seg-s
  • 55
  • 3
1

Well... I flipped the internet upside down three times but did not find anything that might help me because it was a Drupal project rather than other scenarios people described.

My problem was that someone in the project added a js which his address was: <script src="http://base_url/?p4sxbt"></script> and it was attached in this way:

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

Hope this will help someone in the future.

Roy Segall
  • 336
  • 2
  • 6
1

We had the same problem sometime ago where a site suddenly began giving this error. The reason was that a js include was temporarily remarked with a # (i.e. src="#./js...").

Mr. de Silva
  • 382
  • 2
  • 11
1

I had this problem in an ASP.NET application, specifically a Web Forms.

I was forcing a redirect in Global.asax, but I forgot to check if the request was for resources like css, javascript, etc. I just had to add the following checks:

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

I was forcing logged users which hadn't change their passwords for a long time, to be redirected to the change-password.aspx page. I believe there is a better way to check this, but for now, this worked. Should I find a better solution, I edit my answer.

Alisson Reinaldo Silva
  • 10,009
  • 5
  • 65
  • 83
0

For me this was a case that the Script path wouldn't load - I had incorrectly linked it. Check your script files - even if no path error is reported - actually load.

Antony
  • 3,875
  • 30
  • 32
0

I had the same issue. I published the angular/core application on iis.

To change the Identity of the application pool solved my issue. Now the Identity is LocalSystem

S.Sire
  • 27
  • 1
  • 3
  • 9
0

I also faced same issue. In my case when I changed script attribute src to correct path error got fixed.

<script src="correct path"> </script>
Debug Diva
  • 26,058
  • 13
  • 70
  • 123
  • This does not really answer the question. If you have a different question, you can ask it by clicking [Ask Question](https://stackoverflow.com/questions/ask). To get notified when this question gets new answers, you can [follow this question](https://meta.stackexchange.com/q/345661). Once you have enough [reputation](https://stackoverflow.com/help/whats-reputation), you can also [add a bounty](https://stackoverflow.com/help/privileges/set-bounties) to draw more attention to this question. - [From Review](/review/late-answers/31218779) – Sunderam Dubey Mar 10 '22 at 06:52
0

I got my problem fix by removing slash / at the and of link tag.

<link rel="manifest" type="application/manifest+json" href="https://kal.my.id/manifest.webmanifest" title="YakaLee">

i seen your's

<link rel="stylesheet" href="./Client/css/styling.css" />

try remove the slash like so:

<link rel="stylesheet" href="./Client/css/styling.css">
rmsubekti
  • 1
  • 1
0

I was facing the same issue recently. The js path which I provided inside my HTML file was correct. Still, during the time of calling the js file, it was prompting me an uncaught exception in the console. Furthermore, my app is running fine on localhost but facing the issue on prod.

As the paths to js files are already correct, I just give it a try to change my calling .js file to another directly and change the root path and that worked.

Try changing the path of your .js file to another directory.

-1

If someone around still have this issue as I had. Try adding this line of code to your header.

<base href="/" />

It will align your html file to the static directory on Nodejs you are setting.

il_raffa
  • 5,090
  • 129
  • 31
  • 36