2015-07-21 155 views
33

的第一行我有一個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 

它示出了在app.html<!doctype 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",但沒有幫助。

另外,狀態200在獲得core.js的請求時返回。

Status: 200

可能是什麼問題?

+5

'core.js'的內容是什麼? –

+0

問題不在HTML中;它在core.js中。嘗試獲取最新版本(假設core.js是一個框架;否則,請檢查您的代碼) – squill25

+1

core.js是否也包含類似「404 - 文件未找到」的內容? – Xufox

回答

39

您的頁面引用了一個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/解決您的錯誤!

如果您確實已在/Client/public/處找到名爲core.js的文件,而瀏覽器仍然生成HTML頁面,請檢查文件夾和文件的權限。其中任何一個都可能缺乏適當的權限。

+1

@RobG:這取決於您的服務器配置。在Apache服務器上,當找不到文件時,將所有路徑引用到「index.php」是很常見的。在這種情況下,丟失的.js文件會被替換爲您網站的首頁或404錯誤頁面的內容,這取決於您的配置。 –

+0

好的,你的答案現在解釋了。 ;-) – RobG

+0

@JohnSlegers:請檢查更新。 –

1

檢查您的編碼,由於BOM我收到了類似的東西。

確保Core.js文件編碼爲UTF-8 無BOM

+0

請檢查更新 –

0

嗯...我翻了互聯網顛倒3次,但沒有發現任何可能幫助我,因爲它是一個Drupal項目而不是人們描述的其他場景。

我的問題是,有人在該項目中添加一個js其中他的地址是:<script src="http://base_url/?p4sxbt"></script>,它附着在這樣:

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

希望這將幫助別人的未來。