在发送ajax请求时使用Angular获取.json文件时发生错误?

问题描述:

我有由后端创建的.json文件。现在我试图使用Angular.js来发出ajax请求,所以我的前端可以使用我的.json文件中的数据。在发送ajax请求时使用Angular获取.json文件时发生错误?

这里是通向我.json文件:

C:\Users\Mykhaylo Vayvala\Desktop\carBuyer\topCarObj.json 

这里是我的html文件:

<!DOCTYPE html> 
<html ng-app="MyApp"> 
    <head> 
     <title>Top cars</title> 
    <head> 
    <body ng-controller="PostsCtrl"> 
     <p>{{posts}}</p> 
     <script type="text/javascript" src="angular.min.js"></script> 
     <script type="text/javascript" src="carApp.js"></script> 
    </body> 
</html> 

这里使用Angular.js我的JavaScript文件:

var app = angular.module("MyApp", []); 

app.controller("PostsCtrl", function($scope, $http) { 
    $http.get('topCarObj.json'). 
    success(function(data, status, headers, config) { 
     $scope.posts = data; 
    }). 
    error(function(data, status, headers, config) { 
     alert("AJAX failed") 
    }); 
}); 

当我在浏览器中运行我的html文件时,在控制台中出现以下错误:

XMLHttpRequest cannot load file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/topCarObj.json. Cross origin requests are only supported for HTTP. angular.min.js:78 
Error: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/topCarObj.json'. 
    at Error (native) 
    at file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:78:466 
    at v (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:73:464) 
    at g (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:71:294) 
    at I (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:100:144) 
    at I (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:100:144) 
    at file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:101:308 
    at k.$eval (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:112:32) 
    at k.$digest (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:109:121) 
    at k.$apply (file:///C:/Users/Mykhaylo%20Vayvala/Desktop/carBuyer/angular.min.js:112:362) 

我做了什么错,我该如何解决这个问题?

+0

不能使用XMLHttpRequest来获得与绝对路径本地主机文件。您必须使用** http://...**,即** http:// localhost:8080/file.json **。 – fntneves 2014-08-31 12:07:23

主机应用程序到本地主机或尝试其他浏览器。

对于铬可以通过允许这样的:

chrome.exe --allow-file-access-from-files 
+0

@MichaelVayvala你必须安装像wamp或其替代品的服务器,然后将其托管在那里。 – Yogesh 2014-08-31 12:15:21

+0

@MichaelVayvala现在你可以用上面的命令打开chrome http://stackoverflow.com/questions/4208530/xmlhttprequest-origin-null-is-not-allowed-access-control-allow-origin-for-file – Yogesh 2014-08-31 12:16:49